在嵌套的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

上一篇: Getting JSON in nested ajax calls

下一篇: json data, but I get a SyntaxError?