angular 8 Http POST с типом содержимого application/x-www-form-urlencoded
Кажется, немного странно задавать этот вопрос, но я не мог этого понять.
Я прошел через ссылки stackru на этом и в Google, и на самом деле пробовал многие вещи, но я не мог получить разрешение на это. Ниже приведены некоторые из них
Сообщение клиента HTTP Angular 6 - неверный запрос
Как заставить Angular2 выполнять POST с помощью x-www-form-urlencoded
ПРОБЛЕМА - ОПЦИИ запроса для api всегда 400(неверный запрос)
ИНФОРМАЦИЯ -
Ниже приведен код, который работает над другим проектом.
const headers = new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
});
const body = new HttpParams()
.set('grant_type', 'password')
.set('username', stateData.username)
.set('password', stateData.password)
.set('client_id', 'XXXXX-5B3C-4A7D-WEW-23BWWWF9B7872'); //Letters are dummy here for security reasons
//URL preceded by https
return this.http.post('abc.com/authtoken', body , {headers: headers }).pipe(
map(res => {
return res;
})
);
Теперь, когда я пробую тот же код в другом проекте, он не передает запрос OPTIONS, выдает 400(неверный запрос).
мы можем предположить, что остальные вещи нужны для того, чтобы эта работа работала. Проблема в основном в фрагменте кода.
Самым удивительным является то, что когда я помещаю завершающую косую черту в URL-адрес, например - authtoken/, кажется, что он передает ОПЦИИ 200OK, но не выполняет исходный запрос POST как 404, что вполне понятно, поскольку authtoken / не существует.
как пройти мимо этого. Я немного не понимаю, что делать.
Как уже было сказано, я перепробовал многие вещи, чтобы заставить его работать. Пожалуйста, предложите
Мы используем Angular 8.2.13
Спасибо
1 ответ
const headers = new HttpHeaders().set(
'Content-Type',
'application/x-www-form-urlencoded;'
);
body = 'grant_type=' + password + '&username=' + setData.username + '&password=' +
setData.password + '&Client_Id=' + 'XXXXX-5B3C-4A7D-WEW-23BWWWF9B7872';
return this.http.post('abc.com/authtoken', body , {headers: headers })