私はグループプロジェクトに取り組んでおり、私たち全員が私たちのgitブランチをマスターの頭に押し付けています。つまり、私たちはすべて同じコードを実行しています。プロジェクトのリンク先ページに移動すると、ngOnInit()
はカスタムヘッダーを含むヘッダー付きのリクエストを送信します。403私のマシンでのみ - Angular 2&Tomcat 8.5
createAuthorizationHeader(headers: Headers) {
let sessionID = JSON.parse(localStorage.getItem('user-data')).JSESSIONID;
headers.append('JSESSIONID', sessionID);
headers.append('Access-Control-Allow-Headers', 'JSESSIONID');
headers.append('Access-Control-Allow-Origin', 'http://localhost:4200/webplayer');
}
ngOnInit() {
let header = new Headers();
this.createAuthorizationHeader(header);
let params = new URLSearchParams();
let options = new RequestOptions({ headers: header, params: params });
this.http.get('http://localhost:8080/sample-webapp/rest/music/landingPage', options)
.subscribe(data => this.popularArtists = JSON.parse(data["_body"]).popularArtists);
無害に思える、私のチームメイトは、レスポンスとして200を得るが、私はこのメッセージが表示されます。と思うように私をリードしていますので、
ところで、この要求は私のマシン上で郵便配達で動作しますこのはがブラウザと関係がなければなりません(Safari、Chrome、Firefoxの場合と同じ問題)。
私たちは、サーバーのweb.xmlにフィールドを追加したり、オプションの注釈を追加したり、Cookieを削除するなど、すべてを行ってきました。私は本当に自分のマシンだけで動作していないことを知りたいです。私は前のステップで何かを逃したかもしれないので、何がうまくいくのか教えてください。私はweb.xmlと他のものをリクエストに応じて追加することもできます。
BACKEND CORSのFILTER:
response.getHeaders().add("Access-Control-Allow-Origin", request.getHeaderString("origin"));
response.getHeaders().add("Access-Control-Allow-Headers", request.getHeaderString("access-control-request-headers"));
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Expose-Headers", "JSESSIONID");
response.getHeaders().add("Access-Control-Allow-Methods", request.getHeaderString("access-control-request-method"));
他の開発マシンでも動作しますか? –
はい、他のチームメイトのブラウザとバックエンドで動作します – user287474
CORSオプションは何ですか?あなたはヘッダーを取り除くかもしれないミドルウェアを実行していますか? –