提问者:小点点

请求的资源上不存在“Access-Control-Allow-Origin”标头。403禁止


CORS策略阻止了从起源“http://localhost:4200”访问位于“http://localhost:8080/-mvc-restfull-crud-example/adduser”的XMLHttpRequest:对预飞行请求的响应未通过访问控制检查:请求的资源上不存在“access-control-allo-origin”标头。

我已经将cors安装到我的工作区。甚至在spring控制器中启用。同样的代码以前也在工作,但突然它开始给出这个错误

403禁止


共1个答案

匿名用户

来自文档

Angular开发人员在向应用程序自己的主机服务器以外的服务器发出服务请求(通常是数据服务请求)时,可能会遇到跨源资源共享错误。浏览器禁止这样的请求,除非服务器明确允许它们。

客户端应用程序对这些错误无能为力。服务器必须配置为接受应用程序的请求。请访问enable-cors.org,了解如何为特定服务器启用CORS

要在spring启用CORS,您可以参考spring的CORS

备用方法
代理到后端安装程序

为Angular CLI应用程序的API调用设置代理

"/api/*": {
      "target": "https://localhost:8000",
      "secure": false,
      "logLevel": "debug",
      "pathRewrite": {
        "^/api": ""
      },
      "changeOrigin": true
    }

>

  • “API/*”:
    从应用程序中向/api/发出的所有请求都将转发到目标“:”https://localhost:8000/api
  • “secure”:false,:
    默认情况下将不接受在HTTPS上运行的具有无效证书的后端服务器。如果需要,需要设置secure:false

    “logLevel”:“debug”
    若要帮助调试代理是否正常工作,还可以按以下方式添加logLevel选项:logLevel的可能选项包括debuginfowarnerrorsilent(默认为info)。

    “pathRewrite”:{“^/api”:“”},pathRewrite设置表示,如果路径与^/api匹配(即,如果它以/api开头),则使用空字符串重写该部分(即,将其从路径中删除),这样对https://localhost:8000/api的所有请求将转到https://localhost:8000

    “changeorigin”:true:如果您需要访问不在localhost上的后端,或者当您在后端上使用一些虚拟代理(例如使用Apache2配置)时,请将其设置为true。

    此包中提供的代理选项来自基础节点-HTTP-proxy

    代理支持可能会帮助您在开发阶段消除某些CORS异常,但客户端应用程序对这些异常没有太多可做的必须将服务器配置为接受应用程序的请求。
    我想将CORS支持添加到我的服务器

    注意:

    proxy配置用于在通过ng serve运行dev服务器时代理调用。运行ng build之后,您将负责web服务器及其配置。