$.getJSON当返回的数据不是有效的JSON时,jQuery 静默失败似乎非常不便。为什么用无声失败来实现呢?用更好的故障行为(例如,引发异常console.log()或其他方法)执行getJSON的最简单方法是什么?
$.getJSON
console.log()
您可以使用
function name() { $.getJSON("", function(d) { alert("success"); }).done(function(d) { alert("done"); }).fail(function(d) { alert("error"); }).always(function(d) { alert("complete"); }); }
如果要查看错误原因,请使用完整版本
function name() { $.getJSON("", function(d) { alert("success"); }).fail( function(d, textStatus, error) { console.error("getJSON failed, status: " + textStatus + ", error: "+error) }); }
如果您的JSON格式不正确,则会看到类似
getJSON failed, status: parsererror, error: SyntaxError: JSON Parse error: Unrecognized token '/'
如果网址错误,您会看到类似
getJSON failed, status: error, error: Not Found
如果您试图从另一个域获取JSON,则违反Same-origin策略,则此方法将返回空消息。请注意,您可以通过使用JSONP(具有局限性)或跨域资源共享(CORS)的首选方法来解决同源策略。