Ajax 请求在 HandleUnauthorizedRequest 之前命中错误函数
Ajax request hitting error function before HandleUnauthorizedRequest
我有一个PhoneGap
应用程序,它正在与C#
服务通信以获取数据。用户必须登录才能访问其中的任何内容,因此我的控制器上有AuthorizeAttribute
。这工作正常且正确,向我的应用程序抛出一个。对我来说的问题是,在我的AuthorizeAttribute
中,我正在覆盖HandleUnauthorizedRequest
方法,它应该返回 401。事实上,可能是,只是 Ajax 处理程序在我的覆盖方法返回之前命中了错误函数。
授权属性
public class AppCustomAuthorization : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.StatusCode = 401;
filterContext.HttpContext.Response.End();
base.HandleUnauthorizedRequest(filterContext);
}
}
阿贾克斯
$.ajax({
type: "GET",
url: url + "checkin/app/info",
dataType: "json",
success: function(d) {
// Do stuff
},
error: function (xhr, textStatus, errorThrown) {
app.showError(errorThrown); // Status code is 0
}
});
当我查看Network
请求时,似乎我的 get 请求被取消了。最初,我认为这是因为我的授权属性导致它取消请求,但是,它似乎在到达我的处理程序之前就取消了。
这可能是因为同源策略。看看这个:
http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html
只是为了结束完整的问题,我看到响应代码为 0 的原因是:
状态代码"0"通常表示用户导航到不同的 AJAX 调用完成之前的页面
我从这个SO答案中得到了这个答案,在撰写本文时有超过70,000次观看,所以我想这个问题可能会发生很多。这显然促使我查看可能导致我的应用程序导航到其他地方的原因,果然,在我的代码中,我有:
$('[data-role=page]').on('pageshow', function (event, ui) {
if ($(location).attr('pathname').indexOf('login.html') == -1)
if (window.localStorage['UserName'] == null || window.localStorage['Password'] == null)
window.location = "login.html";
}):
作为应用程序开发的早期阶段的解决方法,作为检查用户实际登录的原始类型。
相关文章:
- XMLHttpRequest:需要使用ajax中的成功和错误函数
- Javascript 错误:函数预期
- 未捕获的引用错误:函数未使用 onchange 定义
- 如何让jQueryajax执行错误函数
- 未定义未捕获的引用错误函数
- $.ajax在跨域url上不返回错误函数
- jQuery.ajax+php5.3-始终执行错误函数
- javascript未捕获类型错误函数ajax
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- Ajax 请求在 HandleUnauthorizedRequest 之前命中错误函数
- 引用错误:“函数”未定义
- 黑莓 10 级联 ajax 调用从 javascript 总是执行错误函数
- Ajax 调用弹簧控制器回调错误函数
- 未定义未捕获的引用错误函数
- 主干.js - n捕获异常:语法错误:函数构造函数:无法编译函数
- 引用错误:函数未定义错误
- “未捕获的引用错误:(函数)未定义”与焦点事件
- JavaScript 未捕获的引用错误函数未定义 单击时
- 引用错误:函数未定义
- 类型错误: [函数名称] 不是函数,在猫鼬和节点.js中