请求的资源上不存在“Access-Control-Allow-Origin”标头。 403 禁止
Posted
技术标签:
【中文标题】请求的资源上不存在“Access-Control-Allow-Origin”标头。 403 禁止【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource. 403 forbidden 【发布时间】:2019-10-10 23:08:05 【问题描述】:从源“http://localhost:4200”访问“http://localhost:8080/spring-mvc-restfull-crud-example/adduser”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头出现在请求的资源上。
我已将 cors 安装到我的工作区。甚至在弹簧控制器中启用。之前也有同样的代码,突然就开始报这个错误了
403 禁止
【问题讨论】:
检查这个:***.com/questions/13421463/… 这是一个 CORS 错误。你应该了解更多关于 cors What Is CORS 的信息。您必须更改服务器属性才能访问 api。 安装谷歌CORS扩展然后尝试访问本地主机 @kashif 这不是解决方案您希望您的客户和客户安装 CORS 扩展吗?在开发过程中可以使用代理支持,最终您需要配置服务器以接受应用程序的请求。 分享你开启CORS
How to create a Minimal, Reproducible Example的代码
【参考方案1】:
来自文档
Angular 开发者可能会遇到 cross-origin resource sharing error 当向一个服务请求(通常是一个数据服务请求) 应用程序自己的主机服务器以外的服务器。浏览器禁止 除非服务器明确允许,否则此类请求。
客户端应用程序对这些错误无能为力。 服务器必须配置为接受应用程序的请求。 在 enable-cors.org
上了解如何为特定服务器启用 CORS
要在 Spring 上启用 CORS,您可以参考 CORS with Spring
替代方法Proxy To Backend Setup
为您的 Angular CLI 应用设置 API 调用代理
"/api/*":
"target": "https://localhost:8000",
"secure": false,
"logLevel": "debug",
"pathRewrite":
"^/api": ""
,
"changeOrigin": true
"api/*"
: 从您的应用程序中向/api/
发出的所有请求都将转发到
target": "https://localhost:8000/api
"secure": false,
: 在 HTTPS 上运行的后端服务器
默认不接受无效证书。如果你想,
你需要设置secure: false
。
"logLevel": "debug"
帮助调试您的代理是否
工作正常,您还可以将 logLevel 选项添加为
如下:logLevel 的可能选项包括debug
、info
、
warn
、error
和 silent
(默认为信息)。
"pathRewrite":
"^/api": "" ,
pathRewrite 设置表示如果路径匹配 ^/api
(即如果它以 /api 开头)则用空字符串重写该部分(即从路径中删除它),因此对 https://localhost:8000/api
的所有请求将转到 @987654344 @
"changeOrigin": true
:如果您需要访问不在 localhost 上的后端,或者当您在后端使用一些虚拟代理(例如使用 Apache2 配置)时,请将其设置为 true。
此包中提供的代理options
来自底层node-http-proxy
代理支持可能会帮助您在开发阶段摆脱一些 CORS
异常,但是客户端应用程序对这些异常无能为力 必须将服务器配置为接受应用程序的请求。I want to add CORS support to my server
注意:
proxy
配置旨在在运行 开发服务器通过ng serve
。在你运行ng build
之后,你是 负责网络服务器及其配置。
【讨论】:
以上是关于请求的资源上不存在“Access-Control-Allow-Origin”标头。 403 禁止的主要内容,如果未能解决你的问题,请参考以下文章
django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”
如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头
Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头
请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头