2013-07-17 253 views
0

我嘗試使用AJAX將表單數據發送到服務器,但它始終返回404。 這裏是我的代碼:jQuery AJAX返回404錯誤

$(function() { 
    var dataString ='Name: '+conditionName+"&Desc: "+conditionDescription+'&Condition: '+condition; 
    //alert (dataString);return false; 
    $.ajax({ 
     type: "POST", 
     url: "saveCondition.php", 
     data: dataString, 
     success: function(response) { 
       alert ('Data saved: '+dataString); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
     } 
    }); 
    return false; 
}); 

「saveCondition.php」是在同一個文件夾js文件 我使用WAMP服務器本地機器上。

UPDATE:

當我改變路徑 「saveCondition.php」 相對於HTML頁面,我得到了錯誤

+2

你可以用你的瀏覽器工具來確認被調用的完整路徑嗎? Chrome和Firebug [Firefox插件]在「網絡」標籤下。 –

+1

錯誤500指示您的PHP腳本中有錯誤。檢查你的PHP錯誤日誌。 – Seidr

+1

太棒了!所以,現在它指向正確,但它有錯誤。:) – Sumoanand

回答

2

由AJAX請求的URL的路徑是相對於你目前所在的頁面的根源,也就是說,如果你的網頁是在根目錄下(讓我們把它稱爲index.html)和你的AJAX腳本(data.php),你的jQuery腳本在js目錄中,你可以使用'data.php'作爲URL。如果你的data.php腳本在js目錄下,你的URL需要是'js/data.php'。

小心使用相對路徑。如果您的腳本是從不同的目錄中使用的,而不是最初開發的路徑,最好使用絕對路徑。

您提到了500個回覆代碼。這表明你所請求的PHP腳本實際上是錯誤的。

爲了找出錯誤的原因,請檢查錯誤日誌或將下面的代碼放入PHP腳本中。該錯誤將在HTTP響應主體中輸出。

ini_set('display_errors', 'on'); 
error_reporting(E_ALL); 
+0

錯誤日誌記錄已停止!謝謝! – Braggae

2

的JavaScript文件正在從一個HTML頁面調用。因此,相對於HTML頁面,URL參數必須爲

嘗試編輯您的網址參數如下:"MyJavaScriptFolderNameHere/saveCondition.php"

1

,如果你得到一個404,因爲JS是不是指向PHP腳本正確。 要像調用save這樣調用saveconditions,它應該與您要添加js的腳本位於同一個文件夾中,而不是js本身。我認爲如果將URL更改爲與網站URL完全相關更好,例如,如果您的PHP腳本位於public_html/ajax/saveconditions.php中,請將Ajax URL設置爲/ajax/saveconditions.php。