17

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

4

3 回答 3

37

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

即数据未格式化为 JSONP。

于 2013-02-05T17:39:59.077 回答
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));
       }
});
于 2013-02-05T17:51:30.673 回答
1

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

这是因为我忘记在我的 php 脚本中删除 echo "hello";我之前出于测试原因做出的声明,所以我的 php 脚本正在发送一个字符串和 JSON,这是我的愚蠢错误,也许你也有同样的错误

于 2015-02-28T13:08:37.093 回答