当前位置:  开发笔记 > 前端 > 正文

POST更改为OPTIONS +对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-Origin'标题

如何解决《POST更改为OPTIONS+对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-Origin'标题》经验,为你挑选了1个好方法。

您正在执行该请求的跨域,因此您发出请求的服务器必须发送Access-Control-Allow-Origin响应标头以指示它允许跨源请求.

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS.

出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求.例如,XMLHttpRequest和Fetch遵循同源策略.因此,使用XMLHttpRequest或Fetch的Web应用程序只能向其自己的域发出HTTP请求.

而一个原因OPTIONS请求的情况是,当你发送一个跨域请求,以Content-Type具有比其它的值头application/x-www-form-urlencoded,multipart/form-data或者text/plain,您的浏览器首先进行CORS预检检查.

您的请求发送Content-Type: text/xml; charset="utf-8",因此导致预检.

至于解决方法,如果您发送请求的服务器不是您控制并可配置的服务器,则可以使用开放式反向代理,如https://cors-anywhere.herokuapp.com/.

它的工作方式是,而不是直接发送请求到http://xxx.xxx,你把它改为https://cors-anywhere.herokuapp.com/http://xxx.xxx和代理您的请求和响应与浏览器Access-Control-Allow-Origin和其他预期的CORS标头.

当然,您需要了解如果您的请求包含任何机密信息,cors-anywhere.herokuapp.com如果他们记录请求的数据,您将向维护者公开.



1> sideshowbark..:

您正在执行该请求的跨域,因此您发出请求的服务器必须发送Access-Control-Allow-Origin响应标头以指示它允许跨源请求.

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS.

出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求.例如,XMLHttpRequest和Fetch遵循同源策略.因此,使用XMLHttpRequest或Fetch的Web应用程序只能向其自己的域发出HTTP请求.

而一个原因OPTIONS请求的情况是,当你发送一个跨域请求,以Content-Type具有比其它的值头application/x-www-form-urlencoded,multipart/form-data或者text/plain,您的浏览器首先进行CORS预检检查.

您的请求发送Content-Type: text/xml; charset="utf-8",因此导致预检.

至于解决方法,如果您发送请求的服务器不是您控制并可配置的服务器,则可以使用开放式反向代理,如https://cors-anywhere.herokuapp.com/.

它的工作方式是,而不是直接发送请求到http://xxx.xxx,你把它改为https://cors-anywhere.herokuapp.com/http://xxx.xxx和代理您的请求和响应与浏览器Access-Control-Allow-Origin和其他预期的CORS标头.

当然,您需要了解如果您的请求包含任何机密信息,cors-anywhere.herokuapp.com如果他们记录请求的数据,您将向维护者公开.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有