У меня есть запрос на вход в систему, который я пытаюсь сделать.Мне нужно сделать POST-запрос к серверу с некоторыми параметрами, такими как имя пользователя, пароль, clientId и т. Д.
Код Angular 6:
let body = new URLSearchParams();
body.set('username', email);
body.set('password', password);
body.set('customerId', environment.customerId);
body.set('grant_type', 'password');
return this.http.post<JWT>(
this.baseUrl + this.LOGIN_ENDPOINT,
body.toString(),
{
headers: new HttpHeaders({
'Content-Type': 'text/plain'
})
}
)
Когда я делаю POST-запрос, онизменяется на OPTIONS, и браузер блокирует ответ, потому что заголовок Access-Control-Allow-Origin не установлен.Однако на вкладке сети в Inspect Element вызов на самом деле правильный и возвращает 200 OK.
У меня нет доступа для изменения бэкенда, и серверная компания со мной не работает, потому чтоони могут сделать запрос, используя ajax.
Я пытался сделать тот же запрос, за исключением использования jquery и ajax, и он работает просто отлично, проблема, похоже, заключается в «сложном запросе», отправленном angular 6.
Код Ajax:
$.post("example.com", {
grant_type: 'password',
customerId: 'xxx',
username: 'xxx',
password: 'xxx'
});
Код Ajax работает, код Angular запускает запросы OPTIONS / Preflight
Как решить эту проблему?