私はフロントエンドとしてAngular2を使用してアプリケーションを作成しようとしています、そして、REST APIとしてcakephp 3、認証はうまくいきます。しかし、他のURLにアクセスしようとすると、 401の権限状態、と私はリクエストメソッドがOPTIONS代わりのは、私は私のコードで使用され、私のトークンと認証ヘッダーがサーバーに送信されませんをGETであることに気づい:角2はJWT認証を使用して認証ヘッダーを送信しません
ここに私のuser.service.tsのコードは次のとおりです。
constructor(private http: Http,
private router: Router,
) { }
login(email: string, password: string){
let headers: Headers = new Headers({ 'Accept': 'application/json','Content-Type': 'application/json' });
let options: RequestOptions = new RequestOptions({headers: headers});
return this.http.post('http://www.students.com/api/users/token.json', {email: email, password: password}, options)
.map((data: Response)=> data.json())
.subscribe(
(data)=> this.handlData(data),
(error)=> this.handlError(error)
);
}
getSessionData(){
let token = localStorage.getItem('usr_token');
let headers = new Headers({ 'Accept': 'application/json', 'Authorization': 'Bearer ' + token });
let options: RequestOptions = new RequestOptions({headers: headers});
return this.http.get('http://www.students.com/api/users/getSessionData', options).subscribe(
data => console.log(data),
err => console.log(err)
);
}
handlData(data){
if(data.success){
let usrData = data.data.user;
this.user = new User(usrData.email, usrData.firstname, usrData.lastname, usrData.role, data.data.token);
localStorage.setItem('id_token', data.data.token);
}
}
handlError(error){
console.log(error);
}
私はangular2-JWTモジュールを使用しようとしましたが、私は同じエラーを持っていた、と私のAPIが正常に動作することを確認するために、私はポストマンクロームでそれをテストしました拡張とそれが期待通りに働いていた:
を、ここに私のApache2のVirtualHostの設定です
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/students
ServerName www.students.com
<Directory /var/www/html/students>
Require all granted
Options Indexes FollowSymLinks Includes
AllowOverride all
</Directory>
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS"
Header always set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
</VirtualHost>
誰かが同じ問題を抱えていましたか?それはなぜ起こっているのでしょうか?
は、あなたが見てきました[この回答](http://stackoverflow.com/a/38186000/2435473) –
は、あなたの迅速な返事をありがとうございました残念ながら私はすでに行っていましたが運がありません –