2017-11-24 1 views
0

私はグループプロジェクトに取り組んでおり、私たち全員が私たちの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を得るが、私はこのメッセージが表示されます。と思うように私をリードしていますので、

403 Preflight Error Message

ところで、この要求は私のマシン上で郵便配達で動作しますこのがブラウザと関係がなければなりません(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")); 
+0

他の開発マシンでも動作しますか? –

+0

はい、他のチームメイトのブラウザとバックエンドで動作します – user287474

+0

CORSオプションは何ですか?あなたはヘッダーを取り除くかもしれないミドルウェアを実行していますか? –

答えて

0

だから我々はそれを考え出し、これにヘッダの機能を変更:

createAuthorizationHeader(headers: Headers) { 
    let sessionID = JSON.parse(localStorage.getItem('user-data')).JSESSIONID; 
    headers.append('JSESSIONID', sessionID); 
} 

、それが働きました。なぜ誰かが私に言えるのであれば、私はそれを感謝するでしょう。

関連する問題