繁体   English   中英

localhost 和 localhost:4200 CORS 问题在 angular

[英]localhost and localhost:4200 CORS issue in angular

我已经尝试了我们找到的所有可能方法来解决 angular 中的CORS问题,同时使用ng serve通过VS 代码运行

  1. 实施 prox.conf.json 然后运行

ng serve --proxy config proxy.conf.json

{
  "/`OSTNextService`": {

    "target": "https://localhost/OSTNextService",
    "secure": true,
    "pathRewrite": {
    "^/OSTNextService": ""
  },


"`changeOrigin": true`
  }
}
  1. 将 IIS header 设置为特定域。 在我的例子中https://localhost:4200 在此处输入图像描述

  2. 设置服务 global.asax 文件

    在此处输入图像描述

对我没有任何作用,并且出现错误

从来源“ https://localhost:4200 ”访问位于“ https://localhost/OSTNextService/OSTPortalService.svc/GetUserName ”的 XMLHttpRequest 已被 CORS 策略阻止:“Access-Control-Allow-Origin”的值当请求的凭据模式为“include”时,响应中的 header 不能是通配符“*”。 XMLHttpRequest 发起的请求的凭据模式由 withCredentials 属性控制。

当我在 IIS 中托管应用程序并将 dist 文件夹映射到它时,一切正常。 但是每次我更改我需要构建应用程序的 .ts 文件几乎是双倍的时间浪费。 请通过告知我在这里缺少的内容来提供帮助。

在代理文件中使用“/ OSTNextService”而不是“/ OSTNextService ”。 如果你只使用"target": "https://localhost/"你不需要rewrite

也不要在你的应用程序中使用完整的URL,而是使用相对的/OSTNextService/OSTPortalService.svc/GetUserName ,然后它会命中你的代理并转发到localhost:80 / ...

我认为没有必要修补IIS标头。

我同意Normunds的回答:使用相对路径,否则代理无法工作。 但我只看到一件事(希望是错字)。 您正在为您的应用程序提供服务:ng serve --proxy config proxy.conf.json,而它应该是:ng serve --proxy-config proxy.conf.json(注意代理和配置之间的破折号)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM