2017-12-21 7 views
0

は、私は、このエラーメッセージが出てい:プリフライトリクエストにCORS:私は私のブラウザから私のサーブレットにリクエストを作ってるんだときいいえ「アクセス制御 - 許可 - 起源」ヘッダ存在

レスポンス」doesnのアクセス制御チェックをパスする:要求されたリソースに「アクセス制御許可(Access-Control-Allow-Origin)」ヘッダーが存在しない。 Origin 'http://localhost:3000'はアクセスできません。レスポンスにはHTTPステータスコード405が含まれていました。不必要なレスポンスが必要な場合は、リクエストのモードを「no-cors」に設定して、CORSを無効にしてリソースをフェッチします。私のサーバに

私はこのフィルタを作成しました:

@Provider 
public class CORSFilter implements ContainerResponseFilter 
{ 

    @Override 
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException 
    { 
     responseContext.getHeaders().add("Access-Control-Allow-Origin", "*"); 
     responseContext.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization"); 
     responseContext.getHeaders().add("Access-Control-Allow-Credentials", "true"); 
     responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); 
     responseContext.getHeaders().add("Access-Control-Max-Age", "1209600"); 
    } 

} 

をそして、これは私のtypescriptですコードです:

var oHeaders = { 
     'Accept': 'text/html,application/xhtml+xml,application/xml,application/json;odata.metadata=minimal', 
     "Odata-Version": "4.0", 
     "Odata-MaxVersion": "4.0", 
     "Prefer": "odata.allow-entityreferences" 
    }; 

    var metadataRequest = 
    { 
     headers: oHeaders, 
     requestUri: "http://localhost:8080/olingo/odata/$metadata", 
     data: null 
    }; 

    this.odata$ = Observable.create(o => 
     oData.read(
     metadataRequest, 
     (data, response) => { 
      o.next({ data, response }); 
      o.complete(); 
     }, 
     (error) => o.error(error), 
     null 
    ) 
    ); 

任意のアイデア?

答えて

0

ご要望にOriginヘッダーがありません。これを追加:

'Origin': 'http://example.com' 

あなたのjavascriptのあなたのヘッダーに追加してください。そして、私もコンテンツタイプヘッダを付加しようとするだろう:

'Content-Type': 'text/html; charset=utf-8' // For example 

ことのいずれでも問題を解決できない場合は、このようなページの一番上に手動で受信PHPファイルに"Access-Control-Allow-Origin", "*"を追加します。

<?php 
    header("Access-Control-Allow-Origin: *"); 
?> 
関連する問題