2

我在 wcf webconfig 中有以下内容

 <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
        <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
        <add name="Access-Control-Max-Age" value="1728000"/>
      </customHeaders>
    </httpProtocol>

服务

 [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "getItem", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [Description("Fetch item from database.")]

Angular 6 调用

this.http.post('http://localhost:49823/service.svc/getItem?authkey=key',
  {
   json data
}
  ).subscribe(data => {console.log(data) },err => {
    console.log(err);
  });

拦截器

request = request.clone({
      setHeaders: {
         'Content-Type': 'application/json'
      }
    });

它抛出错误

从源“ http://localhost:4200 ”访问“ http://localhost:49823/service.svc/getitem?authkey=key5 ”处的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。

WCF 服务在 49823 上运行,angular 6 在 4200 上运行。

由于已经在 wcf 中启用了 cors,因此无法弄清楚是什么导致了问题。

这在邮递员中工作正常

4

0 回答 0