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.