Jquery $.getJSON得到响应,但console.log赢得';别把它打出来
我使用以下jQuery从x-server获取一些JSON:Jquery $.getJSON得到响应,但console.log赢得';别把它打出来,jquery,json,jsonp,Jquery,Json,Jsonp,我使用以下jQuery从x-server获取一些JSON: $(function(){ $.getJSON("/json.php?method=getStupid&jsoncallback=?", function(json){ console.log('Success: ' + json); } ); }); 控制台在每个浏览器中都是空的,但当我检查网络选项卡时,它似乎都工作得很好 HTTP/1.1 200 OK
$(function(){
$.getJSON("/json.php?method=getStupid&jsoncallback=?",
function(json){
console.log('Success: ' + json);
}
);
});
控制台在每个浏览器中都是空的,但当我检查网络选项卡时,它似乎都工作得很好
HTTP/1.1 200 OK
Date: Mon, 04 Feb 2013 14:14:01 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7+squeeze9
Cache-Control: no-cache, must-revalidate
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Content-Length: 33
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: application/json
这就是反应的样子:
({"a":1,"b":2,"c":3,"d":4,"e":5})
感觉函数(json){}中的所有内容都被忽略了。这是打字错误吗?由于URL中有
jsoncallback=?
,服务器正在用JSONP应答
服务器正在尝试生成
functionName({"a":1,"b":2,"c":3,"d":4,"e":5})
由于getJSON
没有给出函数名,因此以
({"a":1,"b":2,"c":3,"d":4,"e":5})
这不是JSON
您可能可以通过从URL中删除jsoncallback=?
来解决问题
如果服务器只能用JSONP应答(我对此表示怀疑),那么最好使用泛型函数。因为URL中有
jsoncallback=?
,服务器是用JSONP应答的
服务器正在尝试生成
functionName({"a":1,"b":2,"c":3,"d":4,"e":5})
由于getJSON
没有给出函数名,因此以
({"a":1,"b":2,"c":3,"d":4,"e":5})
这不是JSON
您可能可以通过从URL中删除jsoncallback=?
来解决问题
如果服务器只能用JSONP应答(我对此表示怀疑),那么您最好使用泛型函数。您添加了
jsoncallback=?
,这意味着您正在请求JSONP。这仅用于跨域通信。如果此URL位于您的域上,则只需使用JSON即可
丢失响应中JSON周围的jsoncallback=?
,以及()
。然后它将是有效的JSON
如果需要使用JSONP,则需要正确格式化请求
首先,JSONP不是JSON。它实际上是一个附加到页面的脚本标记。因此,它的内容类型
应该是text/javascript
其次,jsoncallback
参数很重要。发送回响应时,需要将数据“包装”到该参数的值中
因此,如果请求是/json.php?method=getdumby&jsoncallback=test123
,则响应应该是:
test123({"a":1,"b":2,"c":3,"d":4,"e":5})
您正在追加
jsoncallback=?
,这意味着您正在请求JSONP。这仅用于跨域通信。如果此URL位于您的域上,则只需使用JSON即可
丢失响应中JSON周围的jsoncallback=?
,以及()
。然后它将是有效的JSON
如果需要使用JSONP,则需要正确格式化请求
首先,JSONP不是JSON。它实际上是一个附加到页面的脚本标记。因此,它的内容类型
应该是text/javascript
其次,jsoncallback
参数很重要。发送回响应时,需要将数据“包装”到该参数的值中
因此,如果请求是/json.php?method=getdumby&jsoncallback=test123
,则响应应该是:
test123({"a":1,"b":2,"c":3,"d":4,"e":5})
({a:1,b:2,c:3,d:4,e:5})
不是有效的JSON。如何构建它?为什么有jsoncallback=?在您的url中?({“a”:1,“b”:2,“c”:3,“d”:4,“e”:5})
不是有效的JSON。如何构建它?为什么有jsoncallback=?在你的url?似乎工作得更好,但我不知道如何处理数据。GET在控制台中也用红色标记(不确定这是什么意思)@estrar:test123
只是一个例子,实际上不应该在那里输入值。您只需使用http://getwebinspiration.com/json.php?method=getStupid?jsoncallback=?
。jQuery将为您填写?
。jQuery将为您发送一个值作为jsoncallback
参数,您只需将数据封装在该参数的值中(不管它是什么)。啊,我现在觉得有点愚蠢。这是我现在的响应:/json.php?method=getdumby?jsoncallback=jquery18309086869516609894_1359991673362&_=1359991673477现在我只需要以某种方式提取它。@estar:只需获取get参数的值<代码>$\u GET['jsoncallback']。当我删除数据类型:“jsonp”时,它工作得非常好。似乎是一个无声的错误。似乎工作得更好,但我不知道如何处理数据。GET在控制台中也用红色标记(不确定这是什么意思)@estrar:test123
只是一个例子,实际上不应该在那里输入值。您只需使用http://getwebinspiration.com/json.php?method=getStupid?jsoncallback=?
。jQuery将为您填写?
。jQuery将为您发送一个值作为jsoncallback
参数,您只需将数据封装在该参数的值中(不管它是什么)。啊,我现在觉得有点愚蠢。这是我现在的响应:/json.php?method=getdumby?jsoncallback=jquery18309086869516609894_1359991673362&_=1359991673477现在我只需要以某种方式提取它。@estar:只需获取get参数的值<代码>$\u GET['jsoncallback']。当我删除数据类型:“jsonp”时,它工作得非常好。似乎是一个无声的错误。