AngularJS CORS api 与球衣

AngularJS CORS api with Jersey

我在通过 AngularJS 调用支持 CORS 的服务时遇到问题。 这是我的场景:

我在 http://localhost:4567

上有一个启用了 CORS 的 Jersey 2.3 服务器
@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");
    }
}

我在 http://localhost:8000 上有一个 nodejs 服务器提供静态内容(angularjs 库,我的 javascript 等)

这是我的 angular 球衣服务 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)
        });
    };
}]);

有趣的是:cards() 方法效果很好(浏览器发送一个 OPTION 请求,然后是实际的 GET),而 myshareds() 方法失败。

特别是,我没有检测到任何 HTTP 请求(没有 OPTION 和 GET),只有这个 json:

{"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":""} 

日志控制台上没有任何信息。

我实际上可以更改服务器和客户端的代码。

你有什么想法吗?我在这里和网上找到了很多文章,但没有一个有用的方法。

提前致谢

S.

问题与 CORS 无关。

我的浏览器(Firefox 和 Chrome)安装了 uBlock Origin 和 Disconnect 扩展。

禁用它们使 GET 请求正常工作