带有返回json的Ajax调用永远不会成功
ajax call with a return json never catch in success
我试图从我的ajax调用获得一个变量:
$.ajax({
type: "POST",
url: "insert",
data: { title:title, start:dstart, end:dend },
contentType: "application/json",
dataType : 'json',
success : function(data) {
data = JSON.parse(data);
console.log('data = '); // is showing the data with double quotes
console.log(data);
}
});
这是我的PHP:
$id = $calendar->getId();
$json = array ( 'id' => $id );
var_dump(json_encode($json));
json_encode($json);
对于var_dump
,我可以看到json_encore
,例如:
string '{"id":156}' (length=10)
但在我的ajax()
成功,console.log()
没有显示任何东西在我的控制台。
我在哪里可以看到我的success: function(data)
是否为空?我只需要在ajax成功中捕获id。
更新:问题已修复。事实上,我正在与symfony工作,我还没有看到,在我的动作插入哪里是我的PHP,由symfony (indexSuccess.php)调用的页面不是空的,这就是为什么它不工作。
如果你看一下你的PHP代码,你基本上没有对json_encode()的输出做任何事情…
请将PHP代码的最后一行更新为:
echo json_encode($json);
现在你应该得到你想要的数据作为响应。
编辑:@1nsan3,您在评论中询问echo是否不与var_dump()相同…我想你在这里得到了答案:PHP中echo、print和print_r之间的区别是什么?
EDIT2:
请删除JSON.parse()调用你的AJAX请求的响应已经被jQuery解析时,使用dataType : 'json'
,如http://api.jquery.com/jQuery.ajax
你确定php返回的是有效的json数据吗?
php$id = $calendar->getId();
$json = array('id' => $id);
echo json_encode($json); <-- your php code must echo only this valid json,
return; make sure no other values are echoed
above or below this which will break json.
js
success : function(data) {
if($.trim(data) != '') {
console.log(data);
} else {
console.log('no data');
}
}
相关文章:
- 尽管链接成功并已成功下载,但未找到NPM模块
- 在另一个函数成功结束后调用该函数
- 在ajax成功后,cluetip不适用于首次点击活动元素
- jQuery成功函数中的ajax成功函数
- jQuery触发器点击未从AJAX成功工作
- 如何使用jQuery可编辑插件检查ajax是否成功完成
- 执行ajax成功函数-jQUERY
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- 如何从servlet获取数据到ajax成功
- 成功回调永远不会被JSONP请求调用
- 将表单张贴到MailChimp,但显示动态成功页面
- ajax请求成功,但可以'我看不到我的数据
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- AngularJs|Don'在成功加载所有指令htmls之前,不显示页面
- Node.js Passport成功登录后显示用户名
- if/else列出可能的日期条件永远不会成功
- 带有返回json的Ajax调用永远不会成功
- jQueryajax调用永远不会结束(成功和错误回调不会触发)
- jquery ajax总是抛出错误(永远不会成功)
- Ajax POST永远不会被触发,无论是成功还是错误