私はエラーを取得してバックエンドのREST API &として& Javaの春フロントエンドでangularjs2を使用しています。リクエストヘッダフィールドは、プリフライト応じてアクセス制御 - 許可 - ヘッダによって許可されていない
これは私の角度コードです。
private logInUrl = 'Some url'; // URL to JSON file
authenticateUserCredentials(logIn: LogIn): Observable<ResponseClass> {
let body = JSON.stringify(logIn);
let headers = new Headers();
headers.append('Content-type', 'application/json');
headers.append('appKey', 'superadmin');
let options = new RequestOptions({ headers: headers });
return this.http.post(this.logInUrl, body, options)
.map(this.extractData)
.catch(this.handleError);
}
とフィルタを使用したサーバー側コード。 REST APIが
ヘッダAPPKEY &コンテンツタイプの両方で正常に動作している
public final class CorsFilter extends OncePerRequestFilter{
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// CORS "pre-flight" request
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
// response.addHeader("Access-Control-Allow-Headers", "Content-type,X-Requested-With,Origin,accept");
response.addHeader("x-access_token","Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
response.addHeader("Access-Control-Max-Age", "1800");//30 min
filterChain.doFilter(request, response);
}
}
で郵便配達アプリはこれがAPPKEYヘッダーを実装するための正しい方法ですまたは送信するための他の方法を提案してくださいカスタムヘッダーまたはカスタムデータを事前定義ヘッダーに追加します。
プリフライトリクエストは 'OPTIONS'リクエストです。リクエストに' OPTIONS'を許可してください。 – Supamiu
コード内のコメントアウトされた行は、Access-Control-Allow-Headersを設定する正しい方法ですが、エラーは要求ヘッダーが許可されることを期待しているということです。リストに追加してみてください –