作者:香福武燕_205 | 来源:互联网 | 2023-09-02 09:38
我有一个正在与C#服务进行数据通信的PhoneGap应用.用户必须登录才能访问它们,因此我的控制器上具有AuthorizeAttribute.这可以正常工作,并且对我的应用程序有效
我有一个正在与C#服务进行数据通信的PhoneGap应用.用户必须登录才能访问它们,因此我的控制器上具有AuthorizeAttribute.这可以正常工作,并且对我的应用程序有效.对我来说,问题是在我的AuthorizeAttribute中,我重写了HandleUnauthorizedRequest方法,并且它应该返回401.实际上,很可能是,Ajax处理程序在我的重写方法返回之前就击中了错误函数.
AuthorizeAttribute
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
}
});
当我查看网络请求时,似乎我的获取请求被取消了.最初,我认为这是因为我的authorize属性导致它取消了该请求,但是随后,它似乎在到达我的处理程序之前就取消了.
解决方法:
这可能是由于相同来源策略.看一下这个:
http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html