Angular Post Request Cors问题

时间:2019-05-16 08:51:17

标签: c# angular asp.net-web-api

当我尝试向C#Web API发出发布请求时遇到了CORS问题。 错误如下:

  

从源访问“不同域中的api URL”处的XMLHttpRequest   “客户网址”已被CORS政策阻止:对预检的响应   请求未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。

GET请求相同的API调用正在工作。

两个站点都启用了Windows身份验证。

我正在将Angular io 1.7。**与打字稿一起使用。下面是我如何在打字稿中使用发布请求调用api。

let httpHeader = new HttpHeaders();
httpHeader = httpHeader.set('Content-Type', 'application/json');

this.http.post(this.apiUrl, this.bodyObject,
  {
  headers: httpHeader,
  withCredentials:true
}).pipe(map(response => {
  return response;
})).subscribe(result => {
  console.log(result);
}, function (err) {
  console.log(err);
});

我首先认为这可能是api cors问题,并使用下面的jquery代码进行了测试,并且可以正常工作。

   <script>

       $.ajax({
            url:apiUrl,
            type: 'post',
            data: {
                serviceName: "Country"
            },
            xhrFields: {
                    withCredentials: true
                },
            dataType: 'json',
            success: function (data) {
                console.info(data);
            },
            error: function (err) {
                console.error(err);
            }
        });

  </script>

所以我认为,我的角度代码与我有关。你们能告诉我可能是什么问题吗?

1 个答案:

答案 0 :(得分:0)

尝试将其添加到$ .ajax

headers: {
                    'Access-Control-Allow-Origin': '*',
                    'Content-Type':'application/json'
          },
crossDomain: true,