У меня проблема с CORS, по какой-то причине httpClient не читает мои заголовки. Что не так с этим кодом? Мое клиентское приложение в формате 8.x, а api - в asp.net c # mvc5.
Пожалуйста, помогите !!
Я создал proxy.conf.json и все, как показано ниже. Файл "proxy.conf.json" выглядит так:
{
"/api": {
"target" : "http://localhost:8080",
"secure" : false
}
}
И затем я изменил запуск в ng serve в файле package.json, чтобы использовать файл прокси:
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Проблема, которую я обнаружил, на самом деле, когда я помещаю отладчик в мой код .net mvc, он успешно идет туда, но поскольку заголовок не отправляется, он возвращает 407, потому что мы сначала проверяем токен заголовка на наличие действительного пользователя.
Я передаю его, как показано ниже, onTestLogin (postData: { email: string; password: string }) {<br>
//form: NgForm) // const email =(<HTMLInputElement>document.getElementById("email")).value;<br>
//const password = (<HTMLInputElement>document.getElementById("password")).value;<br>
// Send Http request this.http.post( 'http://localhost:11827/Api/AccountApi/LogOn', postData, {
headers: new HttpHeaders().set( 'x-iphoneclientid', '8E72FF50-548B') }).subscribe(responseData => {<br>
console.log(responseData);<br>
});}
, но он создается как следующая вкладка Chrome Network в разделе заголовка.
Access-Control-Request-Headers: content-type, x-iphoneclientid
, где x-iphoneclientid
- токен, где, как и должно быть,
x-iphoneclientid: 8E72FF50-548B
И, следовательно, он не получен в соответствии с требованиями приложения .net api, в результате чего он возвращает его с ошибкой 407 и показывает это в браузере Chrome на вкладке ответа в {"data":null,"result":{"errorcode":407,"messages":"Missing Authorization-Token.ProxyAuthenticationRequired","rstatus":"0"}}
Такпожалуйста, направьте меня, если я делаю что-то не так.
Спасибо
Нирав