Tom*_*nur 2 http httprequest cors spark-java
我在客户端使用Java和Angular 1的Spark。将请求发送到服务器时,我不断收到此“ -1”错误。错误是“所请求的资源上没有'Access-control-allow-origin'标头。因此,不允许访问源' http:// localhost:4567 '。”
我知道这是一个CORS问题,因此我添加了标头'Access-Control-Allow-Origin':'*'并将其也添加到服务器端的响应中。不幸的是,这似乎无法解决我的问题。
需要您的帮助,谢谢!
我已成功使用以下内容(我在这里找到: https: //gist.github.com/zikani03/7c82b34fbbc9a6187e9a):
//add correct package
import com.mpaw.app.controllers.Apply;
import java.util.HashMap;
import spark.Filter;
import spark.Request;
import spark.Response;
import spark.Spark;
/**
* Really simple helper for enabling CORS in a spark application;
*/
public class CorsFilter /*implements Apply*/{
private final HashMap<String, String> corsHeaders = new HashMap<>();
public CorsFilter() {
corsHeaders.put("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
corsHeaders.put("Access-Control-Allow-Origin", "*");
corsHeaders.put("Access-Control-Allow-Headers", "Content-Type,Authorization,X-Requested-With,Content-Length,Accept,Origin,");
corsHeaders.put("Access-Control-Allow-Credentials", "true");
}
@Override
public void apply() {
Filter filter = new Filter() {
@Override
public void handle(Request request, Response response) throws Exception {
corsHeaders.forEach((key, value) -> {
response.header(key, value);
});
}
};
Spark.after(filter);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
public static void main(String[] args) {
CorsFilter.apply(); // Call this before mapping thy routes
Spark.get("/hello", (request, response) -> {
return "Hello";
});
}
Run Code Online (Sandbox Code Playgroud)
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());
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3555 次 |
| 最近记录: |