我正在尝试使用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
}
});
答案 0 :(得分:2)
你怎么知道它是否在调用它?向javascript
添加callback
提醒语句。 E.g
alert(data);
如果一切正确,它会显示您从PHP
script
回复的内容。
答案 1 :(得分:1)
PHP脚本的输出将放在data
中(假设请求成功)。
在您使用某些代码替换注释//do something here
之前,它不会执行任何操作。
答案 2 :(得分:1)
我要做的第一件事就是检查成功回调的结果。
$.ajax({
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
type: "POST",
dataType: "html",
success: function(data)
{
alert(data); // Alert the results
}
});
大多数时候(无论如何),当我注意到ajax没有更新内容时,我的脚本调用通常是一个PHP错误。此方法将警告PHP在该页面上抛出的任何错误:)
此外,请尝试检查您的浏览器控制台,看看您的javascript是否有任何错误。
答案 3 :(得分:1)
正如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服务器上运行)。
答案 4 :(得分:1)
要检查服务器代码是否被调用,您可以在Firebug中检查传递的参数和AJAX响应。我想这会很方便。
答案 5 :(得分:0)
尝试类似......传递数据如下
$.ajax({
url: "deleteitem.php",
type: "POST",
data: {
'task': 'deleteArtwork',
'id': artworkObjectID
},
success: function (msg) {
}
});
答案 6 :(得分:0)
首先,您没有输出存储在(您的情况)data
中的返回数据
此外,您正在解析一些GET变量,尽管您的AJAX请求是POST。
如果您使用AJAX上的变量,我建议使用GET:
$.get('deleteitem.php?task=deleteArtwork&id='+artworkObjectID, function (data) {
//On success, perhaps print the returned data:
alert(data);
})
答案 7 :(得分:0)
确保您创建的文件具有有效的文件类型,例如 PHP 文件,或者只是复制粘贴现有的有效工作 php 文件并在其中写入 ajax 代码。它现在会起作用。下图中的 myAjax 文件 是无效文件,material 是有效的 PHP 文件
答案 8 :(得分:-1)
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID
应该是
url: 'deleteitem.php?task=deleteArtwork&id='.artworkObjectID,