为什么jquery ajax回调函数不起作用?

dch*_*cke 9 ajax jquery callback jquery-callback

我在jQuery ajax中遇到一个简单的回调函数问题.谷歌不会帮助,堆栈溢出也不会,所以我想这可能不是特定的东西,而是我无知的东西.对我来说代码看起来应该是这样的.

那么,这是代码:

function sendMessage(message)
{
//Establish connection to php script
$.ajax({
    type: 'POST',
    url: 'action/chat/test.php',
    success: function(feedback){

        alert(feedback);

    }
}).error(function(){
    //Do some error handling here
});
}
Run Code Online (Sandbox Code Playgroud)

在test.php中它简单地说

<?php
    echo "called";
?>
Run Code Online (Sandbox Code Playgroud)

据我所知,"被叫"应该被警告 - 但事实并非如此.我已经检查过调用函数sendMessage()(现在参数消息无关紧要).

有谁有想法吗?

Fos*_*tah 14

更新:还有一点需要注意,请确保使用某种调试器,如firebug.然后,您可以转到网络选项卡并手动查看请求URL和响应,以查看它是否收到200响应或内部服务器错误等.

尝试console.log(data);在成功函数中添加一个以查看是否有任何返回.

你也可以使用.always(data):

function sendMessage(message)
{
  //Establish connection to php script
  $.ajax({
      type: 'POST',
      url: 'action/chat/test.php'   
  }).done(function(data) { console.log(data); })
    .fail(function() { alert("error"); })
    .always(function() { alert("complete"); });
}
Run Code Online (Sandbox Code Playgroud)

来自文档:

弃用注意: jQuery 1.8中不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调.要准备最终删除的代码,请使用jqXHR.done(),jqXHR.fail()和jqXHR.always().

  • 我发现了问题!从我的apache访问文件存在一些问题.不允许Apache读取文件 - 虽然我只是像通常那样使用Coda创建它.现在回调有效.我只是加入了堆栈溢出,不得不说我对所有快速答案感到不知所措!谢谢! (2认同)