has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
时间: 2023-02-26 16:24:21 浏览: 87
这个错误消息表示,由于 CORS (Cross-Origin Resource Sharing) 策略的限制,请求资源没有“Access-Control-Allow-Origin”头信息。也就是说,当前网页所在的域与请求资源所在的域不一致,浏览器拒绝了该请求。
相关问题
has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource.
这个错误信息说明在发送请求时,服务器返回的响应头中没有包含Access-Control-Allow-Origin字段,导致浏览器拒绝接受该响应。这是由于跨域访问(Cross-Origin Resource Sharing,CORS)的限制所引起的。
为了解决这个问题,可以添加一个名为CorsConfig的配置类,其中配置了允许跨域访问的规则。具体做法是使用addCorsMappings方法将允许跨域访问的规则添加到CorsRegistry中,可以设置allowedOriginPatterns为"*",表示允许来自所有域的请求;allowedHeaders设置为CorsConfiguration.ALL,表示允许所有请求头;allowedMethods设置为CorsConfiguration.ALL,表示允许所有请求方法;allowCredentials设置为true,表示允许发送身份验证信息;maxAge设置为3600,表示设置响应缓存的最大时间。通过这个配置类,服务器会在响应头中添加Access-Control-Allow-Origin字段,从而允许跨域访问。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header is present on the ...](https://blog.csdn.net/qq_45800640/article/details/118422632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [corsyusha:简单快速的代理,可在针对现有API进行原型设计时绕过CORS问题,而不必担心CORS](https://download.csdn.net/download/weixin_42176612/18261495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [解决前后端跨域报错:has been blocked by CORS policy: No ‘Access-Control-Allow-Origin](https://blog.csdn.net/wsaicyj/article/details/127814374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
has been blocked by cors policy: no 'access-control-allow-origin' header is present on the requested resource.
### 回答1:
"CORS policy" 是 "跨域资源共享" 的缩写,它是浏览器的安全机制,防止网页从其他来源的网站上获取数据。
当浏览器请求一个跨域资源时,如果服务器没有设置 "Access-Control-Allow-Origin" 头部,就会抛出 "has been blocked by cors policy: no access-control-allow-origin header is present on the requested resource" 的错误。
如果你是网页的开发者,可以在服务器端设置 "Access-Control-Allow-Origin" 头部来允许跨域访问,这样就可以解决这个问题了。
### 回答2:
随着互联网的发展,CORS(跨原始资源共享)变得越来越常见。简单来说,CORS是一个Web标准,用于解决浏览器中的跨域请求问题。CORS政策是浏览器采用的一种安全机制,用于保护用户隐私和安全。
当需要从一个服务器端请求另一个域的资源时,发起请求的Web应用程序必须遵守浏览器的CORS政策。浏览器会检查被请求的资源是否带有访问控制允许来源头Access-Control-Allow-Origin。如果未被正确设置,则会导致请求被CORS政策阻止,出现“has been blocked by cors policy: no 'access-control-allow-origin' header is present on the requested resource.”的错误提示。
为了解决该问题,您需要访问的资源需设置正确的访问控制允许来源头Access-Control-Allow-Origin。该头告诉浏览器“请求从哪个源发出是允许的”。常见的做法是将响应头设置为“Access-Control-Allow-Origin: *”,表示任何来源都可以访问资源。
当然,也可以将响应头设置为特定的域名,以限制资源只能被某些特定域名的Web应用程序访问。这样做可以提高Web应用程序的安全性,但同时也会使损失一些灵活性。
总之,处理“has been blocked by cors policy: no 'access-control-allow-origin' header is present on the requested resource.”的错误,关键在于要正确设置访问控制允许来源头Access-Control-Allow-Origin,使浏览器遵守CORS政策,确保Web应用程序的安全和稳定。
### 回答3:
CORS是指跨域资源共享,它是一种Web标准,允许来源不同的服务器之间共享资源。当出现“blocked by CORS policy: no 'access-control-allow-origin' header is present on the requested resource.”的错误时,意味着客户端试图从一个源请求资源,但是该资源的响应中没有设置CORS头部,导致浏览器无法与该资源进行通信。这通常发生在AJAX请求中,当客户端的源与请求资源的源不同,浏览器就会执行CORS检查。
要解决这个问题,第一种方式是在服务器端添加CORS头,可以设置“Access-Control-Allow-Origin”响应头来允许指定客户端的来源。如果需要允许多个来源,则可以设置多个“Access-Control-Allow-Origin”值或使用通配符“*”。此外,还可以在响应头中添加其他CORS头来进一步控制资源的访问,如“Access-Control-Allow-Methods”和“Access-Control-Allow-Headers”等。
第二种方式是使用代理来绕过CORS限制。这种方法需要在服务器端设置一个代理,将客户端请求转发到目标服务器,并在代理中添加CORS头。客户端只需要与代理进行通信,从而避免了CORS限制。
总结起来,当出现“blocked by CORS policy: no 'access-control-allow-origin' header is present on the requested resource.”的错误时,我们可以通过在服务器端添加CORS头或使用代理来解决该问题。在开发Web应用程序时,我们应该充分理解CORS的原理和相关规范,并根据实际需求来选择合适的解决方案。
阅读全文