Я учусь Угловой 2. Это моя служба, которая должна извлекать данные из приложения ASP.NET Web api.Как включить Cors в ASP.NET Web Api
@Injectable()
export class ExpenseService {
private _expUrl = "http://localhost:65400/api/expenses";
constructor(private _http: Http){}
getExpenses(): Observable<IExpense[]> {
return this._http.get(this._expUrl)
.map((response: Response) => <IExpense[]>response.json())
.do(data => console.log('ALL: ' + JSON.stringify(data)))
.catch(this.handleError)
}
//more here...
}
Приведенный выше код отлично работает в Microsoft Edge. Тем не менее, в Chrome и FireFox, я получаю следующее сообщение об ошибке:
XMLHttpRequest cannot load http://localhost:65400/api/expenses.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:3000' is therefore not allowed
Я позволил CORS в моем веб-апи как это было предложено много сообщений.
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
//...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
//...
app.UseCors(builder =>
builder.WithOrigins("http://localhost:3000/"));
}
Это не изменило результат. Я по-прежнему получаю ту же ошибку в Chrome и FireFox, а Edge работает нормально.
Спасибо за помощь
Клиент абсолютно никакого отношения, CORS должны быть реализованы на стороне сервера, и это браузер, который определяет его доступность, а не JavaScript. Ваш вопрос должен заключаться в том, как реализовать его в .NET не угловатым. Это не должно быть трудно исследовать ... Есть тысячи вопросов CORS на этом сайте, целые веб-сайты, посвященные этому, и множество других веб-ресурсов. – charlietfl
Ребята, прекратите голосовать каждый вопрос. Я ничего не знаю о CORS. Я получаю сообщение об ошибке, поэтому я ищу помощь здесь. Должен ли я изменить заголовок? – Richard77
Да, и вам следует провести некоторое исследование. Сотни вопросов CORS задаются каждую неделю – charlietfl