【发布时间】:2013-09-05 09:38:06
【问题描述】:
我在 my.js 中进行错误处理,在那里我对其他服务器进行跨域调用,对于动态 HTML 模板,我正在使用 Mustache.js。
$.getJSON(url, function(data, textStatus, xhr) {
$.each(data, function(i, data) {
introPage(data);
});
}).fail(function(Error) {
alert(Error.status);
});
function introPage(data )
{
$.getJSON('myphp.php?jsoncallback=?&template='+testTemplate, function(msg) {
// my operations
}).error(function(data) {
});
}
我们在 getJSON 中有 .fail() 来捕获 getJSON 中的错误。我能够捕获 404 错误(未找到),但是当涉及 406 错误(不可接受或说无效输入)或 401 错误(未经授权的访问)时,.fail() 似乎不起作用
但在控制台中抛出错误
当我点击链接时。它以以下格式在 jquery 回调中显示错误
jQuery191014790988666936755_1378113963780({
"error": {
"code": 406,
"message": "Not Acceptable: Sorry, There are no results to display for the given input."
}
});
现在我想知道如何在我的 JS 中得到这个错误。我没有收到错误代码 406 和 401。我需要该错误代码以便显示相应的错误页面。
谢谢
【问题讨论】:
-
你被打了,你被一个狡猾的罪犯打了。还有Same Origin Policy
-
@RoryMcCrossan:我不明白???即使涉及两台服务器,但都在同一个域下!比为什么同源政策。
-
子域不同。对于 AJAX 请求,域必须完全相同——具体到协议。
-
@Rory:脚本和 JSONP 请求不受同源策略限制。
-
@RoryMcCrossan :我所理解的是,当我使用 getJSON 调用我的 php 'url' 时,它返回了错误,但它没有在 .fail() 中向我显示错误,因为对于某些原因错误出现在 jquery 日志或其他任何内容中......所以问我如何捕获该错误
标签: jquery json ajax getjson mustache