如何从jQuery $.getJSON()
请求中获取原始JSON响应?
我只想在浏览器的alert()
对话框中打印原始回复?
答案 0 :(得分:15)
从jQuery 1.5开始,jqXHR对象作为回调方法的第三个参数传入。 jqXHR对象有一个reponseText属性,该属性包含原始JSON字符串。
function callback(data, status, jqXHR) {
alert(jqXHR.responseText);
// or console.log(jqXHR.responseText);
}
答案 1 :(得分:3)
如果你正在使用JSONP,这根本不可能。
如果您要向您的域发送正常请求,请将getJSON
替换为get
。
答案 2 :(得分:0)
http://api.jquery.com/jQuery.getJSON/
我更喜欢使用完整的.ajax方法,因此我不必记住抽象的各种签名。
文档告诉你这等同于getJSON:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
你可以在哪里:
function callback(data) {
alert(data);
}
我强烈建议你使用Firefox和Firebug和console.log();对于这种事情。一段时间后警报会让你疯狂。
修改强>
根据其他回复,我可能会误解你的问题!您可以随时使用Fiddler查看原始响应。
答案 3 :(得分:0)
我最终使用https://github.com/douglascrockford/JSON-js/blob/master/json2.js中的JSON.stringify()
功能。
不理想,因为它是另一个正在加载的javascript文件,但它符合我的目的。
答案 4 :(得分:0)
有许多不同的选项可以获得实际响应,无论是解析的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);
});
如果您想了解更多信息,请访问:
http://api.jquery.com/jQuery.ajax/#jqXHR或
http://api.jquery.com/category/deferred-object/