#angular #typescript #post
#angular #машинопись #Публикация
Вопрос:
я новичок в angular 9. Пытаюсь выполнить post-запрос и получить проблемы с заголовками моего post-запроса — Unnecessarily quoted property 'Authorization' found
. Что это значит? Чего он хочет от меня? Как я могу это исправить?
ServiceName.service.ts:
export class DadataSuggestService {
url = 'https://cleaner.dadata.ru/api/v1/clean/name';
token = 'f6bf5c998d0e4fcd58cea3b241763e01fe918127';
secret = 'c6461196cb75f4f880b07f9bf5fb58b7a715b245';
query = 'Срегей владимерович иванов';
constructor(private http: HttpClient) {
}
options: {} = {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Token ' this.token,
'X-Secret': this.secret
},
body: JSON.stringify([query])
};
takeSuggestion(URL: string, options: object): any {
return this.http.post(URL, options)
.pipe(
tap(
data => console.log(data),
error => console.log(error)
)
);
}
}
Ответ №1:
Вам не нужно явно указывать method
при post
непосредственном вызове функции. Вы могли бы попробовать следующее, чтобы отправить заголовки
takeSuggestion(URL: string): any {
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Token ' this.token,
'X-Secret': this.secret
});
const options = { headers };
const body = JSON.stringify([query]);
return this.http.post(URL, body, options).pipe(
tap(
data => console.log(data),
error => console.log(error)
)
);
}
Ответ №2:
Лучший способ — использовать http-перехватчик, который перехватит ваш http-post и добавит токен к вашему запросу. Если нет, попробуйте что-то вроде приведенного ниже.
var header = {
headers: new HttpHeaders()
.set('Authorization', `Basic ${AuthService.getToken()}`)
}
this.http.post(url, header)