在嵌套的ajax调用中获取JSON
发送给某个'request_url'的http请求以格式{'succes':1,'html':'thestuff'}返回json响应
所以当
jQuery.ajax({
url: 'request_url',
success: function(response){
alert(response.html); //'thestuff' is here as expected
}
});
按照预期,可以在response.html中找到'thestuff'。 但如果这个ajax在另一个ajax请求的'成功'回调中被调用,那么response.html将变空,'thestuff'将变为'响应'。
jQuery.ajax({
url: 'some_other_url',
success: function(some_other_response){
jQuery.ajax({
url: 'request_url',
success: function(respose){
alert(response.html); //there is nothing
alert(response); //I see 'thestuff' which is expected in 'html'
}
})
}
});
为什么会发生?
更新:'thestuff'包含一些带有{}的js代码我可以假设某些东西可能会感到困惑,但为什么它对单个(不嵌套的)ajax请求起作用。
没有足够的声誉来评论,所以添加为答案这里扩大charlietfl使用dataType的评论。
我使用dataType =“json”工作。 根据jQuery文档,Json必须严格格式化。
jQuery.ajax({
url: 'some_other_url',
success: function(some_other_response){
jQuery.ajax({
url: 'request_url',
dataType:"json",
success: function(response){
alert(response.status); //there is nothing
alert(response); //I see 'thestuff' which is expected in 'html'
}
})
}
});
request_url应该返回这样的内容(注意,引号应该用来代替撇号)
{"status":"s","html":"some stuff"}
链接地址: http://www.djcxy.com/p/48173.html