Javascript 没有为我的php页面获取ajax查询的成功回调

Javascript 没有为我的php页面获取ajax查询的成功回调,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,编辑:将$.alert()更改为alert() 我有一个文件planner.php,它使用JQuery向同一页面发送ajax请求。 使用调试器,我可以看到php正确地获取请求,访问我的数据库,然后发送数据。然而,即使在发送它之后,javascript中也没有成功的回调。怎么了 JQuery: $(function() { $.post('planner.php', {"want": "keys"}, success_func, 'json'); }); function success

编辑:将$.alert()更改为alert()

我有一个文件planner.php,它使用JQuery向同一页面发送ajax请求。 使用调试器,我可以看到php正确地获取请求,访问我的数据库,然后发送数据。然而,即使在发送它之后,javascript中也没有成功的回调。怎么了

JQuery:

$(function()
{
    $.post('planner.php', {"want": "keys"}, success_func, 'json');
});

function success_func(result)
{
    //This is never called :(
    alert("Worked");
}
PHP:



就这么简单。所有的PHP代码都只是访问couchDB,您不必担心,因为我知道$response设置正确。

这可能是因为没有类似于
$的东西。alert()
,请使用简单的
alert()

另外,您的
success\u func
声明在ajax调用下面,请将其上移到
$.post()之前

编辑:


由于函数是声明的,所以在执行之前无需键入它。

您可以这样使用,它可能是您的success函数没有调用

var data = 'want=keys';
$.post(
  'planner.php',
  data
).success(function(resp){
   json = $.parseJSON(resp);
   alert(json);
});

用于了解ajax调用在何处完成或遇到错误

 $(function()
 {
 $.post('planner.php', {"want": "keys"},function(){
  alert( "success" );
 })
 .done(function(){
    alert("second success");
  })
 .error(function(){
    alert("error");
  });
});

链接:

感谢vivek给了我解决问题的方法

基本上,我根本不了解php是如何工作的。发送POST响应的代码位于页面的一半,因此PHP将整个页面连同我编码的任何额外json一起发送回,然后JQuery尝试将此html页面解析为json,失败了,然后没有运行success函数,因为它的请求从未成功过。阅读了解更多信息

显而易见的解决办法是:

  • 为响应创建新页面
  • 将php放在 页面
  • 为了简单起见,我最终选择了选项2


    谢谢大家

    控制台里有什么吗?如果结果格式正确,请添加一个错误函数以查看函数声明是否已挂起。没有必要移动它。好的,我将其更改为alert(),但我知道这不是问题所在,因为它不会像以前那样导致任何错误。而success_func仍然没有被调用。
     $(function()
     {
     $.post('planner.php', {"want": "keys"},function(){
      alert( "success" );
     })
     .done(function(){
        alert("second success");
      })
     .error(function(){
        alert("error");
      });
    });