Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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()请求获取原始JSON响应?_Jquery_Json - Fatal编程技术网

如何从jQuery$.getJSON()请求获取原始JSON响应?

如何从jQuery$.getJSON()请求获取原始JSON响应?,jquery,json,Jquery,Json,如何从jQuery$.getJSON()请求获取原始JSON响应 我只想在浏览器中的alert()对话框中打印原始响应?如果您使用的是JSONP,这基本上是不可能的 如果您正在向域发送普通请求,请将getJSON替换为get 我更喜欢使用full.ajax方法,这样我就不必记住抽象的各种签名 文档告诉您这相当于getJSON: $.ajax({ url: url, dataType: 'json', data: data, success: callback }); 如果您可以

如何从jQuery
$.getJSON()
请求获取原始JSON响应


我只想在浏览器中的
alert()
对话框中打印原始响应?

如果您使用的是JSONP,这基本上是不可能的

如果您正在向域发送普通请求,请将
getJSON
替换为
get

我更喜欢使用full.ajax方法,这样我就不必记住抽象的各种签名

文档告诉您这相当于getJSON:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});
如果您可以:

function callback(data) {
    alert(data);
}
我强烈建议您在console.log()中使用Firefox和Firebug;对于这种事情。一段时间后,警报会让你发疯

编辑


根据其他的回答,我可能误解了你的问题!您可以随时使用Fiddler查看原始响应。

我最后使用了中的
JSON.stringify()
功能

不理想,因为它是另一个正在加载的javascript文件,但它符合我的目的。

从jQuery 1.5开始,对象作为回调方法的第三个参数传入。jqXHR对象有一个包含原始JSON字符串的reponseText属性

function callback(data, status, jqXHR) {
    alert(jqXHR.responseText);
    // or console.log(jqXHR.responseText);
}

有许多不同的选项可以获取实际响应,无论是解析的JSON还是“getJSON”方法试图解析但失败的浏览器/服务器生成的错误

注意:使用“.always”方法,参数会根据失败或成功而变化

$.getJSON(getData.php, function(data,textStatus,jqXHR) {
    console.log(jqXHR.responseText);

//As of 1.5 we have these methods:
}).always(
    function(jqXHR, textStatus, errorThrown) { //on failure
        console.log(jqXHR.responseText);
}).always(
    function(data, textStatus, jqXHR) { //on success
        console.log(jqXHR.responseText);
}).fail(
    function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR.responseText);

//As of 1.8 we have this method also:
}).then(
    function(data, textStatus, jqXHR) {
        console.log(jqXHR.responseText);}, 
    function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR.responseText);
});
如需更多信息,请访问:


您应该使用firebug之类的工具来查看原始JSON。这比提醒别人更有用。@alex是的,我知道。但这是隐藏文本框的前身,因此某些用户可以将其取消隐藏并将响应复制/粘贴到电子邮件中。说来话长,我要打印的是原始json字符串。这只是为了让我可以做一个快速的黑客调试来检查数组值。不过还是要谢谢你,萤火虫才是最好的选择。只需更改为函数回调(data){console.log(data);}即可查看返回的整个对象。
console.log()
仍将数据转储为对象,而不是我真正想要的对象。我看不到原始的JSON(大括号、方括号、字段名、缺点等等)。Fiddler确实可以工作,但我最终想把它嵌入到一个“秘密”文本框中。我没有使用JSONP。尝试了你的建议,我只显示了
[object object]
。@Kev:尝试添加
数据类型:“text”
。在大量“放屁”之后,这确实有效。这确实意味着需要额外的一步才能将字符串解析为对象,但是
$.dump()
JSON.stringify()
是另一个额外的步骤。@gertas:完全不可能获得原始的JSONP响应。我不知道你们在说什么。@SLaks:对,对不起,我的意思是普普通通$.getJSON的域场景和OP所问的相同。使用1.5中提供的jqXhr对象是可能的。看看马里奥的答案。这将是一个很好的添加到accepted的插件。请注意,这不一定会返回您收到的实际JSON。(格式可能不同)@slaks-Yes,但它暂时起到了作用。是的,这在处理错误时非常有用:
.fail(函数(jqxhr,textStatus,error){console.error(“响应是:+jqxhr.responseText);})