HTTP授权标头不起作用

27 浏览
0 Comments

HTTP授权标头不起作用

我有以下的 Angular 代码,我在其中设置了 access_token。

在发送该请求后,我得到了以下错误。

请求的资源不支持 http 方法 'OPTIONS'。有人可以帮助我吗?

0
0 Comments

问题出现的原因是忘记在服务器端启用cors。解决方法是在WebApiConfig.cs文件中添加以下代码:

public static void Register(HttpConfiguration config)
{
    // Forgot adding below line.
    config.EnableCors();
}

另外,还需要安装Microsoft.AspNet.WebApi.Cors包,并导入所需的命名空间。另外,在Web.Config文件的handlers标签中删除两行代码也可以解决该问题。

0
0 Comments

问题出现的原因是使用基本身份验证时,HTTP授权标头无法正常工作。解决方法是在web.config中添加Access-Control-Allow-Methods,并在global.asax.cs文件的Application_BeginRequest方法中进行修改。另外,还需要对web.config进行一些修改。具体的解决方法如下:

首先,在web.config中添加以下代码:


  
    
    
    
  

请注意,上述代码将允许几乎所有内容。您可能需要根据需要限制允许的来源和方法。

然后,在global.asax.cs文件的Application_BeginRequest方法中添加以下代码:

protected void Application_BeginRequest()
{
    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
    {
        //这些标头处理浏览器发送的“预检”OPTIONS请求
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization");
        HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
        HttpContext.Current.Response.End();
    }
}

最后,对web.config进行以下修改:


  
  
  
  

希望能对你有所帮助。如果问题仍然存在,可以尝试对代码进行进一步修改。

0