Java服务器用于处理HTTP GET/POST并以JSON接收和响应
问题描述:
我想用Java编写代码,它将充当我的角度前端(托管在另一台服务器上,npm)的服务器。我需要接收请求,从发送的JSON中获取值并返回一个JSON。 我已查看过sparkJava。它看起来非常适合我,因为我需要处理多个请求(如/ authentication,/ records,/ user/Details等)。 我在Spark中遇到的问题是它无法接收来自其他服务器的请求。如果前端也托管在它内部,它工作正常。Java服务器用于处理HTTP GET/POST并以JSON接收和响应
答
为了使SparkJava应用程序能够接收外部请求,您必须启用CORS。在任何路由/过滤器之前添加以下片段。
options("/*",
(request, response) -> {
String accessControlRequestHeaders = request
.headers("Access-Control-Request-Headers");
if (accessControlRequestHeaders != null) {
response.header("Access-Control-Allow-Headers",
accessControlRequestHeaders);
}
String accessControlRequestMethod = request
.headers("Access-Control-Request-Method");
if (accessControlRequestMethod != null) {
response.header("Access-Control-Allow-Methods",
accessControlRequestMethod);
}
return "OK";
});
在客户端(angularjs),请执行以下操作
$httpProvider.defaults.useXDomain = true;
难道Java Servlet的足以满足您的要求? –
Spark是否无法接收来自其他服务器的请求?不知道我明白。 SparkJava是JettyWebServer的单例包装器。 请扩大您的问题,以便可以回答。 –
@ domfarr ..我的前端正在另一台服务器(npm)上运行。我尝试在sparkjava发送请求到我的路由,但是我得到了交叉错误。我已经放入了响应标头,允许跨越原点和所有HTTP方法,但它仍然会给出相同的错误。 –