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

Posted

技术标签:

【中文标题】XMLHttpRequest 无法加载。预检响应具有无效的 HTTP 状态代码 405【英文标题】:XMLHttpRequest can not load. Response for preflight has invalid HTTP status code 405 【发布时间】:2016-09-19 22:04:40 【问题描述】:

我在 *** 中阅读了许多类似的问题,但这些解决方案对我不起作用。 我可以使用 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);
   
);

但在这种情况下,我得到了一个错误。

点赞

在资源服务器端,我已在 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>

【问题讨论】:

我找到了相同的解决方案。 【参考方案1】:

我只是放了全局设置

    protected void Application_BeginRequest()
    
        if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
        
            Response.Flush();
        
    

并对 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>

然后工作正常:)

谢谢

【讨论】:

这修复了我的错误,但现在又出现了另一个错误。发送 HTTP 标头后,服务器无法修改 cookie。首先抛出这个错误,然后请求成功完成并返回数据。

以上是关于XMLHttpRequest 无法加载。预检响应具有无效的 HTTP 状态代码 405的主要内容,如果未能解决你的问题,请参考以下文章

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

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

本地加载 XML 的 jQuery Ajax 问题 - Safari 版本 11.0 - 错误:XMLHttpRequest 无法加载 .xml。预检响应不成功

Laravel 5 CORS - XMLHttpRequest 无法加载 http://myapi.com。预检响应具有无效的 HTTP 状态代码 500

CORS 预检响应错误

无法通过 xmlhttprequest 加载本地 xml 文件