Angular2对预检请求的响应没有通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头
问题描述:
我试图创建一个简单的POST请求来创建一个带有API的帐户。 NET,但是如标题所示,它会以警告失败。 在Postman(api测试工具)中做相同的请求返回状态200:好吧,一切工作正常,数据保存到数据库。 但我不能做我的web应用程序一样,这是我的代码:Angular2对预检请求的响应没有通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头
register(){
let details = {
Serviceurl: this.serviceUrl,
CompanyName: this.companyName,
CompanyFullName: this.companyFullName,
LanguageCulture: this.languageCulture,
IsNewUser: this.isNewUser,
User: {
UserName: this.userName,
FirstName: this.firstName,
LastName: this.lastName,
Email: this.email,
Password: Md5.hashStr(this.password)
}
}
this.authService.createAccount(details)
.then((result) => {
}, (err) => {
});
}
,然后请求本身在我authService:
createAccount(details){
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http.post('http://SITEADDRESS/api/IM_Customers/CreateNew', JSON.stringify(details), {headers: headers})
.subscribe(res => {
let data = res.json();
resolve(data);
}, (err) => {
reject(err);
});
});
}
答
您需要启用无API项目中的Access-Control-Allow-Origin。 在API项目中,startup.cs:
public void Configure(IApplicationBuilder app){
app.UseCors(builder=>builder.AllowOrigin().AllowAnyMethod().AllowAnyHeader());
}
您是否尝试过使用Google?这是由CORS浏览器策略引起的。邮差不需要它。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS?redirectlocale=zh-CN&redirectslug=HTTP_access_control#section_5 –
Angular中可能有[No'Access-Control-Allow-Origin'标头2应用程序](http://stackoverflow.com/questions/36002493/no-access-control-allow-origin-header-in-angular-2-app) – n00dl3
是的,我试着解决它与谷歌,我以为我有这启用和我的客户端有问题 –