我的标题为http post错误中的空角度6

时间:2018-08-21 16:41:38

标签: javascript angular http

您好,我正在使用Angular 6,并且正在尝试发表http帖子。

我知道用户允许

使用多个来源
    <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> </customHeaders>

我的代码:

     let data = this.http.post(
            this.base_url + this.walletControllerSubUrl +"login", 
           {username: "exampleuser", password: "Pass123!"}
          );
          data.subscribe(data => console.log(data));
            console.log("data" + data);
            return data;

我总是会收到错误:

  

“对预检请求的响应未通过访问控制检查:'Access-Control-Allow-Origin'标头包含多个值'http://localhost:8100,*',但仅允许一个值”

但是我现在也注意到我的标题似乎为空

    headers: Object { normalizedNames: Map(0), lazyUpdate: null, headers: Map(0) }

当我什至没有传递任何内容时,会导致标题为空的原因 标头?

除了AngularJS之外,还有另一个应用程序可以在同一篇文章中很好地运行。

是什么原因造成的?

2 个答案:

答案 0 :(得分:2)

最近我遇到了相同的错误,只需添加proxy.json文件,该文件包含一个定义服务器真实代理的json并将其添加到启动脚本中

答案 1 :(得分:2)

使用CORS的现代浏览器将尝试发送飞行前请求,通常是OPTIONS调用。它期望服务器响应,并在响应中带有Access-Control-Allow-Origin标头。但是,合规标准限制此响应标头在该标头(或通配符*)中仅包含 一个 URL。

您要命中的服务器似乎正在发送多个值。

您需要修复服务器响应,以便仅发送回通配符或通过代理进行请求。

编辑: 您的标头为空,因为除非使用withCredentials requestOptions,否则标头不会与预检请求一起发送。