Ajax Web Api调用返回302错误代码(身份验证失败时)和登录页面的附加响应

Ajax Web Api调用返回302错误代码(身份验证失败时)和登录页面的附加响应,ajax,asp.net-mvc,asp.net-web-api,Ajax,Asp.net Mvc,Asp.net Web Api,我面临一个奇怪的问题,找不到出路。我有一个web api应用程序,它在超时之前工作正常。此时,当我发出一个ajax调用时,服务器响应为空,并通过登录URL接收到一个额外的响应。 我想捕获响应并读取位置头,以确定它是否包含登录URL,但没有成功。我们应该如何在web api ajax调用中处理这种情况?您可以设置属性来防止这种行为。例如,在您的global.asax中: protected void Application_EndRequest(object sender, EventArgs

我面临一个奇怪的问题,找不到出路。我有一个web api应用程序,它在超时之前工作正常。此时,当我发出一个ajax调用时,服务器响应为空,并通过登录URL接收到一个额外的响应。

我想捕获响应并读取位置头,以确定它是否包含登录URL,但没有成功。我们应该如何在web api ajax调用中处理这种情况?

您可以设置属性来防止这种行为。例如,在您的
global.asax
中:

protected void Application_EndRequest(object sender, EventArgs e)
{
    HttpApplication context = (HttpApplication)sender;
    context.Response.SuppressFormsAuthenticationRedirect = true;
}
设置此选项将对ASP.NET MVC和Web API部件产生全局影响

如果只想对Web API端点执行此操作,则可以检查
context.Request.Url
并有条件地仅对
/API
端点执行此操作

如果您使用框架的更新版本,您也可以考虑阅读。