我在IIS 10中托管了一个.net Web服务。我正在尝试从一个有角度的前端从Web服务器获取数据。
我在IIS中启用了Access-Control-Allow-Origin:
我还在Web.Conf中启用了customHeaders:
当我尝试从有角度的前端访问Web服务时,收到此错误:
我正在使用@ angular / common / http的HttpClient,并尝试了几种请求的变体,但还是没有运气。这是我最新的失败请求
public GetSlippage(tradeGroup: string, start: string, end: string, period: string, premiumFilter: number): Observable<SlippageContainer> {
let url: string = `${this._slippageUrl}/${tradeGroup}`;
let queryParams: HttpParams = new HttpParams()
.set('start', start)
.set('end', end)
.set('period', 'none')
.set('premium', String(premiumFilter));
let heads: HttpHeaders = new HttpHeaders();
heads = heads.append('Content-Type', 'text/plain');
heads = heads.append('Access-Control-Allow-Origin', '*');
console.log(`Sent Slippage Request ${start} ${end}`);
return this._httpClient.get<SlippageContainer>(url, { headers: heads, params: queryParams });
}
由于某些原因,当我使用http://<serverName>:port/endpoint
时请求可以正常工作
但http://<serverName.domainName.local:port/endpoint
除外。最终,我希望能够在URL中使用完全限定的域名。
答案 0 :(得分:0)
您需要在asp.net应用中允许CORS。 在ConfigureServices中添加:
services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
,然后在“配置”中添加:
app.UseCors("AllowAll");
您可以通过指定方法,标头和来源来制定更具限制性的策略。