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

我有这个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上有其他类似的问题,但似乎没有人解决它。

这表明HTTP请求成功,但解析数据的尝试却没有。

即数据未格式化为JSONP。

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

//服务器端

 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)); } }); 

我刚刚遇到了完全相同的问题,{“readyState”:4,“status”:200,“statusText”:“success”}

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