错误回调{{readyState“:4,”status“:200,”statusText“:”success“}

时间:2013-02-05 17:35:23

标签: javascript ajax jquery

我有url电话。 url按预期返回一个json对象(直接浏览器调用),但是当我通过带有后续行的ajax执行此操作时

$.ajax({
       url: url, 
       type: "GET",
       dataType:"jsonp",   
       success: function(data) {
          alert(data);
       },
       error : function(error) {
          alert("no good "+JSON.stringify(error));
       }
});

它让我回头

no good {"readyState":4,"status":200,"statusText":"success"}

我知道在stackoverflow上还有其他类似的问题,但似乎没有人解决它。

3 个答案:

答案 0 :(得分:35)

这表明HTTP请求成功,但解析数据的尝试不是。

即。数据未格式化为JSONP。

答案 1 :(得分:5)

这些变化解决了我的问题。

//服务器端

echo $_GET['callback'] . '('.json_encode($data_to_encode).')';

// JS

$.ajax({
       url: url+"?callback=?", 
       type: "GET",
       dataType:"jsonp",   
       success: function(data) {
          alert(data);
       },
       error : function(error) {
          alert("no good "+JSON.stringify(error));
       }
});

答案 2 :(得分:1)

我刚刚遇到完全相同的问题,{" readyState":4," status":200," statusText":&#34 ;成功"}

这是因为我忘了在我的php脚本中删除一个echo"你好&#34 ;;我以前为了测试原因而制作的语句,所以我的PHP脚本和JSON一起发送了一个字符串,这是我的愚蠢错误,也许你也有同样的错误