XMLHttpRequest无法加载.预检的响应具有无效的HTTP状态代码405

Arv*_*ari 4 c# api jquery web-services cors

我在StackOverflow中已经阅读了许多类似的问题,但这些解决方案对我来说并不适用.我可以使用Postman(Chrome扩展程序)使用它.我将数据作为'标题'传递.我得到200返回代码.

在此输入图像描述

我需要使用ajax Jquery调用此方法:

$.ajax(apiUri, {
   beforeSend: function (xhr, settings) {
       xhr.setRequestHeader('Authorization', 'Bearer ' + $('#AccessToken').val());
   },
   dataType: 'text',
   cache: false,
   success: function (data) {
       console.log(data);
       $('#output').text(data);
   }
});
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我收到了一个错误.

喜欢 使用jquery/Ajax控制台错误

在资源服务器端,我已在web.config中设置.

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

Arv*_*ari 14

我刚刚进入全球环境

    protected void Application_BeginRequest()
    {
        if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
        {
            Response.Flush();
        }
    }
Run Code Online (Sandbox Code Playgroud)

并在web.config(system.webserver)设置中进行了一些更改

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,Authorization" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

然后工作正常:)

谢谢