簡體   English   中英

Joomla 3.3 AJAX呼叫

[英]Joomla 3.3 AJAX call

以下代碼在我的view / tmpl / edit.php中

<script type="text/javascript">            
            jQuery("#button").click(function(){
                jQuery.ajax({
                    url:'somefile.php',
                    type:'POST',
                    data: {action:"1"},
                    success: function(response) {alert(response);}
                });
            });        
        </script>

在同一個文件夾中,我具有帶有以下代碼的somefile.php

 if (isset($_POST['action'])) {
        SomeFunction();
 }

 function SomeFunction()
 {
    ...do something
 }

我的問題是,當我按下按鈕時,盡管腳本已執行(已檢查警報),但它從未訪問somefile.php 我在這里做錯了什么?

請通過一些相關的示例/示例代碼向我顯示一些指導。

謝謝。

  1. 如果您要調用“ somefile.php”作為您的URL,該URL等於您在Joomla中瀏覽的當前URL +文件名。 它不會映射到文件的路徑。

    例如,如果您位於網站的首頁上,http://example.com則AJAX請求將轉到
    http://example.com/somefile.php

    而在http://example.com/blog/mypost01頁面上,它將映射到http://example.com/blog/somefile.php

    這兩個都是錯誤的,因為您的文件實際上是這樣的:

    http://example.com/components/com_mycomponent/view/tmpl/somefile.php

  2. 首先,我將使用像Charles這樣的代理來監視完整的requestresponse ,此周期應該使您清楚了解正在發生的事情以及整個請求/重定向/響應周期。

  3. 確保您已將Error Reporting一直轉到Development和Joomla DEBUG模式,這樣您可能會看到錯誤而不是返回200結果。

  4. 一些Joomla 3 htaccess配置和安全擴展(AdminTools)將阻止直接訪問php文件。 如果這是問題所在,則可能表明您使用的是不安全/不正確的方式。

  5. 由於您使用的是Joomla 3.3,請在Joomla Doc的網站通過Joomla Ajax接口閱讀有關我們的信息

  6. 最后,當您似乎正在構建自己的組件時,您可能/應該通過您的組件並將AJAX調用傳遞給合適的控制器中的方法,而不是直接訪問PHP文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM