Angular2 Http.get Отправить два запроса

У меня есть простая служба аутентификации, я использую токен jwt, и после того, как мне понадобится информация о пользователе для проверки заголовка авторизации и отправки конечной точки API запроса, но угловой запрос 2 отправит первый запрос Пустой ключ заголовка, но второй правильный заголовок позвольте мне объяснить

Сетевые операции
http://pasteboard.co/c3wmFZvtJ.jpg

Неправильный заголовок
http://pasteboard.co/c3wDdFxMy.jpg

Правильный заголовок
http://pasteboard.co/1cKy9EHDy.jpg

Моя функция Http.Get

getUsers(): Observable<User[]> {
// Authorization Tokeni Ayarlanıyor
let headers = new Headers({ 'Authorization': this.authenticationService.token });
let options = new RequestOptions({ headers: headers });
// Kullanıcı Headeri Gönderiliyor
return this.http.get('http://localhost/Hesap/Detay', options)
.map((response: Response) =>
response.json().detay
);
}

я называю эту функцию здесь

ngOnInit() {
this.userService.getUsers()
.subscribe(users => {
this.users = users;
});
}

Php Side

public function Detay(){
echo $this->headers["authorization"];
if(!isset($this->headers["authorization"]) || empty($this->headers["authorization"])){
echo json_encode(array("Hata" => "Header Yok"));
}else{
$token = explode(" ", $this->headers["authorization"]);
$user = JWT::decode(trim($token[0],'"'));
$this->load->model("auth_model");
if($this->auth_model->checkUser($user->id, $user->KullaniciAdi) !== false)
{
$this->load->model("user_model");
$detay = $this->user_model->get($user->id, $user->KullaniciAdi);
echo json_encode(
array(
"detay"=> $detay
)
);
}
}
}

Второй заголовок может повторить токен
http://pasteboard.co/c3C6ed2k7.jpg

И теперь ЭТО ПРОБЛЕМА, ТОЛЬКО РЕЖИМ РАЗРАБОТКИ, если я создаю Prod Project, отправьте один запрос

-1

Решение

Похоже, что первый запрос OPTIONS запрос необходим из-за CORS,

Если это так, то в этом нет ничего плохого. Браузер должен сделать предварительный запрос, чтобы проверить, можете ли вы вызвать API и разрешены ли требуемые заголовки.

Заголовок Access-Control-Request-Headers проверяет, можете ли вы отправить authorization Заголовок в вашем запросе.

Заголовок Access-Control-Request-Method проверяет, можете ли вы отправить GET запрос.

Предварительный запрос выполняется только в том случае, если домен клиента отличается от домена API.

Взгляните на это ссылка на сайт.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector