我有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上还有其他类似的问题,但似乎没有人解决它。
答案 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一起发送了一个字符串,这是我的愚蠢错误,也许你也有同样的错误