Я пытаюсь отправить запрос со значением заголовка Conent-type
в мой REST API.Я пытаюсь добиться этого с помощью приведенного ниже кода
getTokenizedLoginStatus(user: User): Observable<any> {
httpOptions = {
headers: new HttpHeaders({'Content-type': 'text/plain'})
};
return this.http.post<any>(apiUrl + '/archive/users/tokenizedLogin', user, httpOptions);
}
. Он работает нормально, и в инструменте разработчика Chrome в разделе «Заголовки запроса» мой запрос выдается с заголовком Content-type: text/plain
.Однако теперь я хочу отправить более одного заголовка в моем запросе, как показано ниже
getTokenizedLoginStatus(user: User): Observable<any> {
httpOptions = {
headers: new HttpHeaders({'Content-type': 'text/plain', 'User': 'someone', 'Token': '123456'})
};
return this.http.post<any>(apiUrl + '/archive/users/tokenizedLogin', user, httpOptions);
}
Когда я выполняю запрос, значение заголовка Content-Type больше не присутствует в, и я получаю сообщение об ошибке.
Failed to load
http://localhost:8080/DemoProject/archive/users/tokenizedLogin:
Response to preflight request doesn't pass access control check: No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost:4200' is therefore not allowed
access.
Однако в моем коде Java я определил Access-Control-Allow-Origin следующим образом:
public static Response getAsResonse(String result) {
return Response.ok()
.entity(result)
.header("Access-Control-Allow-Origin", "http://localhost:4200")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.allow("OPTIONS").build();
}
Я не могу понять, почему Content-Type больше не отправляется какчасть запроса или почему мой API выдает эту ошибку.И как я могу изменить свой код для отправки всех этих заголовков одновременно?