c#-HandleUnauthorizedRequest之前Ajax请求命中错误功能

我有一个正在与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

上一篇:使用Javascript从远程php文件接收变量?


下一篇:java-如何在android phonegap应用程序中获取webview URL?