ajax调用php脚本无法正常工作

时间:2012-10-28 10:37:33

标签: php javascript ajax

我正在尝试使用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
        }
});

9 个答案:

答案 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 文件 是无效文件,ma​​terial 是有效的 PHP 文件enter image description here

答案 8 :(得分:-1)

url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID 

应该是

url: 'deleteitem.php?task=deleteArtwork&id='.artworkObjectID,