我有Angular2和ASP.MVCREST服务器的rest应用程序,通信也有问题。当我发送get时,我得到以下错误:
请求的资源上没有“访问-控制-允许-原产地”标题。因此,“http://localhost:4200”源是不允许访问的。
当我添加访问控制-允许-原产地请求时,我得到以下错误:
对飞行前请求的响应不会通过访问控制检查:请求的资源上没有“访问-控制-允许-原产地”标题。因此,“http://localhost:4200”源是不允许访问的。响应具有HTTP状态代码404。
这是我的代码:
let headers = new Headers({ 'Access-Control-Allow-Origin': '*' })
this.http.get("http://localhost/App/Users", { withCredentials: true, headers: headers })
.subscribe(response => {
console.log("A");
}, error => {
console.log(error);
});在web.config中启用了Windows身份验证。问题在哪里?
发布于 2019-08-15 10:05:18
启用cors时,在服务器端添加:
corsAttr.SupportsCredentials = true;就像MVC .net上的Application_Start
var corsAttr = new EnableCorsAttribute("http://localhost:4200,http://domain1,http://domain2", "*", "*");
// Enable withCredentials
corsAttr.SupportsCredentials = true;
config.EnableCors(corsAttr);发布于 2017-06-30 07:58:04
这里的问题似乎是CORS。您的角和WebAPI使用不同的端口,因为您使用的是本地主机。(看起来它们是两个不同的项目)。要解决这个问题,可以使用“install Microsoft.AspNet.WebApi.Cors”安装nuget包,然后在WebApiConfig文件中只需使用"config.EnableCors()“即可。现在,你暴露在角度部分的API,必须被告知CORS应该在那里使用。因此,您可以将属性放在控制器上,以提及源、标头和方法。在那之后一切都会好的。要获得更多参考,您可以检查此链接,https://learn.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api。
https://stackoverflow.com/questions/44839321
复制相似问题