【发布时间】:2019-04-16 00:38:59
【问题描述】:
您好,我正在尝试从我的 Angular 2 前端向 .NET Core Console App 发出 http get 请求,我收到以下错误:
Access to XMLHttpRequest at 'http://127.0.0.1:9300/api/getusers' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
对我来说这很好奇,因为我在服务器端启用了CORS,您可以在下面的Startup 类中看到。
启动
public class Startup {
public Startup(IConfiguration configuration) {
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services) {
services.AddOptions();
services.AddMvc();
}
public IConfiguration Configuration;
public void Configure(IApplicationBuilder app) {
Console.WriteLine("request delievered");
Debug.WriteLine("Entered Server !");
app.UseMvc();
app.UseCors(x => { x.AllowAnyHeader(); x.AllowAnyOrigin();x.AllowAnyMethod(); });
}
}
我从UI 发出这样的请求:
@Injectable()
export class UserService{
private static baseUrl:string="http://127.0.0.1:9300/api";
constructor(private http:HttpClient) {
}
getClientsAsync():Promise<User[]>{
let route=UserService.baseUrl+"/getusers";
var data=(this.http.get(route) //should i have some headers here?
.map(resp=>resp)
.catch(err=>
Observable.throwError(err)
) as Observable<User[]>).toPromise<User[]>();
return data;
}
}
PS 我已经尝试使用Postman 并且请求有效,但是在angular 2 中我没有为我的http.get 方法包含任何headers。这可能是问题所在?
【问题讨论】:
标签: asp.net-core cors