2017-10-13 7 views
0

AngularJSを介してCORS対応サービスを呼び出す際に問題があります。 これは私のシナリオです:AngularJS CORS api with Jersey

私はCORSは私がhttp://localhost:8000静的コンテンツを提供(angularjsライブラリ、私のジャバスクリプトなど)にnodejsサーバーを持っているhttp://localhost:4567

@Provider 
public class CORSFilter implements ContainerResponseFilter { 
    @Override 
    public void filter(final ContainerRequestContext requestContext, 
         final ContainerResponseContext cres) throws IOException { 
     cres.getHeaders().add("Access-Control-Allow-Origin", "http://localhost:8000"); 
     cres.getHeaders().add("Access-Control-Allow-Headers", "*"); 
     cres.getHeaders().add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); 
    } 
} 

上ジャージー2.3サーバーを有効にしている。ここ

私のジャージAPIを呼び出すための私の角度のサービスです:

app.service("myapi", ["$http", function($http) { 
    this.backend = "http://localhost:4567" 

    this._header = function(token) { 
     return { 
      "Accept": "application/json", 
      "Content-Type": "application/json", 
      "Authorization": "Bearer "+token, 
     } 
    } 

    this.mysharings = function(token, hash) { 
     var serverurl = this.endpoints['path'] + '/' + hash; 
     return $http({ 
      method: "GET", 
      url: serverurl, 
      headers: this._header(token), 
     }); 
    }; 
    this.cards = function(token) { 
     return $http({ 
      method: "GET", 
      url: this.endpoints["path2"], 
      headers: this._header(token) 
     }); 
    }; 
}]); 

おかしいものはthですmysharings()メソッドは失敗しますが、at:cards()メソッドはうまくいきます(ブラウザはOPTIONリクエストと実際のGETを送ります)。

{"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://localhost:4567/path2","headers":{"Accept":"application/json","Authorization":"Bearer 4gr7gb6jspnr4buchmhir9rc3u"},"withCredentials":false},"statusText":""} 

し、ログコンソールの情報無し:

は特に、私は、任意のHTTPリクエスト(なしOPTIONどちらもGET)が、唯一このJSONを検出しません。

私は実際にサーバーとクライアントの両方のコードを変更することができます。

ご存知ですか?私はここやウェブ上で多くの記事を見つけましたが、便利な方法はありませんでした。事前に

おかげ

S.

答えて

0

問題がCORS関連ではありません。

私のブラウザ(FirefoxとChromeの両方)には、uBlock OriginとDisconnect拡張機能がインストールされています。

これらを無効にすると、GET要求が機能しました