Javascript 没有为我的php页面获取ajax查询的成功回调
编辑:将$.alert()更改为alert() 我有一个文件planner.php,它使用JQuery向同一页面发送ajax请求。 使用调试器,我可以看到php正确地获取请求,访问我的数据库,然后发送数据。然而,即使在发送它之后,javascript中也没有成功的回调。怎么了 JQuery: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
$(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");
});
});