2017-04-12 111 views
2

我试图创建一个简单的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); 
     }); 

}); 

}

+1

您是否尝试过使用Google?这是由CORS浏览器策略引起的。邮差不需要它。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS?redirectlocale=zh-CN&redirectslug=HTTP_access_control#section_5 –

+1

Angular中可能有[No'Access-Control-Allow-Origin'标头2应用程序](http://stackoverflow.com/questions/36002493/no-access-control-allow-origin-header-in-angular-2-app) – n00dl3

+0

是的,我试着解决它与谷歌,我以为我有这启用和我的客户端有问题 –

回答

2

您需要启用无API项目中的Access-Control-Allow-Origin。 在API项目中,startup.cs:

public void Configure(IApplicationBuilder app){ 
    app.UseCors(builder=>builder.AllowOrigin().AllowAnyMethod().AllowAnyHeader()); 
} 
相关问题