Http Spark CORS访问控制允许原点错误

Http Spark CORS访问控制允许原点错误,http,cors,httprequest,spark-java,Http,Cors,Httprequest,Spark Java,我在客户端将Spark与Java和Angular 1结合使用。 当我向服务器发送请求时,不断收到此'-1'错误。 错误为“请求的资源上不存在“Access control allow origin”标头。因此不允许对源“”进行访问。” 我知道这是CORS问题,所以我添加了标题“Access Control Allow Origin”:“*”,并将其添加到服务器端的响应中。 不幸的是,它似乎不能解决我的问题 需要你们的帮助,伙计们, 谢谢 我成功地使用了以下内容(我在这里找到:): //添加正确的

我在客户端将Spark与Java和Angular 1结合使用。 当我向服务器发送请求时,不断收到此'-1'错误。 错误为“请求的资源上不存在“Access control allow origin”标头。因此不允许对源“”进行访问。”

我知道这是CORS问题,所以我添加了标题“Access Control Allow Origin”:“*”,并将其添加到服务器端的响应中。 不幸的是,它似乎不能解决我的问题

需要你们的帮助,伙计们,
谢谢

我成功地使用了以下内容(我在这里找到:):

//添加正确的包
导入com.mpaw.app.controllers.Apply;
导入java.util.HashMap;
进口火花过滤器;
进口火花。请求;
进口火花.响应;
进口火花,火花;
/**
*在spark应用程序中启用CORS的真正简单助手;
*/
公共类CorsFilter/*实现适用*/{
private final HashMap corsHeaders=new HashMap();
公共公司过滤器(){
put(“访问控制允许方法”、“获取、放置、发布、删除、选项”);
put(“访问控制允许源代码”、“*”);
put(“访问控制允许标头”、“内容类型、授权、X-Requested-With、内容长度、接受、来源”);
put(“访问控制允许凭据”,“true”);
}
@凌驾
公开无效申请(){
过滤器过滤器=新过滤器(){
@凌驾
公共无效句柄(请求、响应)引发异常{
corsHeaders.forEach((键,值)->{
响应头(键、值);
});
}
};
火花后(过滤器);
}
}
用法:

publicstaticvoidmain(字符串[]args){
CorsFilter.apply();//在映射路由之前调用此函数
Spark.get(“/hello”,(请求,响应)->{
回复“你好”;
});
}
Spark.after()
是你的朋友

package com.company.package;

import static spark.Spark.*;

import com.google.gson.Gson;
import spark.Filter;
import spark.Request;
import spark.Response;

public class MyClass {

    public static void main(String[] args) {
        final Service service = new ServiceImpl();

        after((Filter) (request, response) -> {
            response.header("Access-Control-Allow-Origin", "*");
            response.header("Access-Control-Allow-Methods", "GET");
        });

        get( "/something", (req, res)->{
            res.type("application/json");
            return new Gson().toJsonTree(service.getNodes());
        });
    }
}

我刚试过将
访问控制允许原点设置为
*
,效果很好。您可以显示一些代码吗?当然,我在这里使用了示例。客户端是否需要任何更改?如果您设置了自定义端口,您可能还需要尝试此操作。必须在调用apply
CorsFilter.apply()
@toinetoine之前执行此操作如果您设置了自定义端口,为什么要在之前执行此操作?之后呢?有什么区别?