.net Web API。。401(未经授权)铬合金
我有两个网站在运行。经典的WebAPI服务器和angular4客户端。 我有COR在服务器上工作。我知道CORS不会与chrome一起工作,除非您在本地主机安全关闭的情况下启动chrome。当我这样做的时候,一切都很好 但我明白,当我从localhost迁移到一个站点(该站点确实使用了一个端口号。看起来像)时,Chrome就可以正常工作了。但我有同样的问题,我得到401(未经授权) 它可以在IE上运行,没问题,如果我在关闭安全的情况下运行chrome,它也可以运行 更新: 修正如下: 在服务器上,我做了如下自定义标题(在web.config中) 在客户网站上,我打了个电话.net Web API。。401(未经授权)铬合金,.net,angular,asp.net-web-api,cors,.net,Angular,Asp.net Web Api,Cors,我有两个网站在运行。经典的WebAPI服务器和angular4客户端。 我有COR在服务器上工作。我知道CORS不会与chrome一起工作,除非您在本地主机安全关闭的情况下启动chrome。当我这样做的时候,一切都很好 但我明白,当我从localhost迁移到一个站点(该站点确实使用了一个端口号。看起来像)时,Chrome就可以正常工作了。但我有同样的问题,我得到401(未经授权) 它可以在IE上运行,没问题,如果我在关闭安全的情况下运行chrome,它也可以运行 更新: 修正如下: 在服务器上
var options = new RequestOptions({
headers: new Headers({
'Accept': 'application/json',
}),
withCredentials: true
});
return this.http.get(this.apiAddress + '/api/user', options)
.map(res => res.json() as user);
}
我读到你不能用*来控制Chrome的Allow Origin。因此,我添加了服务器,它是未来的形式。还是不行。我了解到,对于IIS6,您不能将访问控制允许源添加到web.config。所以我添加了一个过滤器来添加响应头。还是。。Chrome上出现同样的错误。我的响应看起来像:访问控制允许标题:X-AspNet-Version、X-Powered-By、日期、服务器、接受、接受编码、接受语言、缓存控制、连接、内容长度、内容类型、主机、来源、Pragma、Referer、用户代理访问控制允许方法:GET、POST、PUT、DELETE、,选项访问控制允许原点:缓存控制:privateI读取您不能使用*进行访问控制允许原点与Chrome。因此,我添加了服务器,它是未来的形式。还是不行。我了解到,对于IIS6,您不能将访问控制允许源添加到web.config。所以我添加了一个过滤器来添加响应头。还是。。Chrome上出现同样的错误。我的响应看起来像:访问控制允许标题:X-AspNet-Version、X-Powered-By、日期、服务器、接受、接受编码、接受语言、缓存控制、连接、内容长度、内容类型、主机、来源、Pragma、Referer、用户代理访问控制允许方法:GET、POST、PUT、DELETE、,选项访问控制允许来源:缓存控制:专用
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var corsAttr = new EnableCorsAttribute("http://{serveraddress}:8420", "*", "*");
config.EnableCors(corsAttr);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
var options = new RequestOptions({
headers: new Headers({
'Accept': 'application/json',
}),
withCredentials: true
});
return this.http.get(this.apiAddress + '/api/user', options)
.map(res => res.json() as user);
}