Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery $.getJSON得到响应,但console.log赢得';别把它打出来_Jquery_Json_Jsonp - Fatal编程技术网

Jquery $.getJSON得到响应,但console.log赢得';别把它打出来

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

我使用以下jQuery从x-server获取一些JSON:

$(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”时,它工作得非常好。似乎是一个无声的错误。