gpt4 book ai didi

javascript - 使用 jQuery 和/或 Javascript 报告 JSON 对象中的语法错误

转载 作者:行者123 更新时间:2023-11-29 10:25:49 29 4
gpt4 key购买 nike

当我使用 jQuery 加载 JSON 提要时,报告语法错误的最佳方式是什么?我可以像这样建立错误报告设置:

error: function(xhr){
alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
}

但是,当我调用的 URL 加载有效页面(尽管其中没有 JSON 对象)时,此函数不会触发。此外,我无法检查它确实返回的数据,因为(至少根据 Firebug)jQuery.getJSON 在将对象传递给执行它的函数之前在语法错误处中断。

我想报告错误的原因是因为这是我检查用户是否提供了将生成有效 JSON 提要的 URL 的方法。

这是一个 related answer that requires control over what the server will respond with .这是 Firebug 给我的语法错误 The syntax error Firebug gives me http://img.skitch.com/20090623-8c97g47jha4mn6adqqtjd41cwy.jpg

有什么想法吗?谢谢

最佳答案

您可以将函数绑定(bind)到全局 ajaxerror 事件

$(document).ajaxError(function(event, request, ajaxOptions, thrownError){
if ( 4==request.readyState) { // failed after data has received
alert(ajaxOptions['url'] + " did not return valid json data");
}
else {
alert("something else wnet wrong");
}
});
或使用 $.ajax() 而不是 $.getJSON()
function foo() {
// $.getJSON("<a href="http://localhost/test.txt" rel="noreferrer noopener nofollow">http://localhost/test.txt</a>", function(data){});
$.ajax({
type: "GET",
url: "<a href="http://localhost/test.txt" rel="noreferrer noopener nofollow">http://localhost/test.txt</a>",
success: function (data, textStatus) {
alert("succuess");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("request failed: " + textStatus);
},
dataType: "json"
});
}

编辑:但你可能要记住 ajax(dataType:"json")getJSON() (它简单地调用 .ajax(dataType:"json") 归结为 data = window["eval"]("("+ data + ")") ...这可能不是什么如果您不知道您的脚本请求什么(任意)数据,您就会想要。这可以解释为什么当您向它提供 html 文档而不是 json 数据时,firebug 会捕获语法错误。
在这种情况下,最好请求 dataType:"string"并通过完全成熟的 json 解析器库运行数据。

关于javascript - 使用 jQuery 和/或 Javascript 报告 JSON 对象中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030348/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com