当我尝试向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>
所以我认为,我的角度代码与我有关。你们能告诉我可能是什么问题吗?
答案 0 :(得分:0)
尝试将其添加到$ .ajax
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type':'application/json'
},
crossDomain: true,