[英]ajax call to php script not working
我正在嘗試使用 AJAX 調用 PHP 腳本。 我在我的 deleteitem.php 腳本中放置了一個簡單的 echo 警報來檢查它是否被調用,但無論我做什么,它都不會被調用。 PHP 腳本與調用它的 js 腳本位於同一文件夾中
有人能告訴我為什么會這樣嗎? 可能的原因是什么?
$.ajax({
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
type: "POST",
dataType: "html",
success: function(data)
{
//do something here
}
});
你怎么知道它是否在調用它? 將javascript
警報語句添加到您的callback
。 例如
alert(data);
如果一切正常,它將顯示您從PHP
script
回顯的內容。
PHP 腳本的輸出會放在data
(假設請求成功)。
它不會做任何事情,直到你用一些可以做某事的代碼替換注釋//do something here
。
嘗試類似..傳遞如下數據
$.ajax({
url: "deleteitem.php",
type: "POST",
data: {
'task': 'deleteArtwork',
'id': artworkObjectID
},
success: function (msg) {
}
});
我要做的第一件事是檢查成功回調的結果。
$.ajax({
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
type: "POST",
dataType: "html",
success: function(data)
{
alert(data); // Alert the results
}
});
大多數時候(無論如何我自己)當我注意到 ajax 沒有更新內容時,通常是我的腳本調用的 PHP 錯誤。 此方法將提醒 PHP 在該頁面上引發的任何錯誤:)
另外,請嘗試檢查您的瀏覽器控制台,看看您的 javascript 是否有任何錯誤。
正如 Amitd 所說,你不應該結合GET和POST請求。 代碼應如下所示:
$.ajax({
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
type: "GET",
dataType: "html",
success: function(data)
{
alert(data); // alert on success
}
});
如果您仍然沒有收到任何響應,則可能是服務器錯誤,因此您應該在 .php 腳本中,在腳本開始處放置這樣的行:
error_log("script was called, processing request...");
error_log("passed artworkObjectId is: " . $_GET["artworkObjectID"]);
如果有任何消息,您可以檢查您的 .log 文件(如果它在 apache 服務器上運行,則可以在 apache 日志文件/文件夾中找到它)。
要檢查服務器代碼是否被調用,您可以在 Firebug 中檢查傳遞的參數和 AJAX 響應。 我想這會很方便。
首先,您沒有輸出存儲在(您的案例) data
的返回數據此外,您正在解析一些 GET 變量,盡管您的 AJAX 請求是 POST。 如果您通過 AJAX 使用變量,我建議使用 GET:
$.get('deleteitem.php?task=deleteArtwork&id='+artworkObjectID, function (data) {
//On success, perhaps print the returned data:
alert(data);
})
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID
應該
url: 'deleteitem.php?task=deleteArtwork&id='.artworkObjectID,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.