Java服务器用于处理HTTP GET/POST并以JSON接收和响应

问题描述:

我想用Java编写代码,它将充当我的角度前端(托管在另一台服务器上,npm)的服务器。我需要接收请求,从发送的JSON中获取值并返回一个JSON。 我已查看过sparkJava。它看起来非常适合我,因为我需要处理多个请求(如/ authentication,/ records,/ user/Details等)。 我在Spark中遇到的问题是它无法接收来自其他服务器的请求。如果前端也托管在它内部,它工作正常。Java服务器用于处理HTTP GET/POST并以JSON接收和响应

+0

难道Java Servlet的足以满足您的要求? –

+0

Spark是否无法接收来自其他服务器的请求?不知道我明白。 SparkJava是JettyWebServer的单例包装器。 请扩大您的问题,以便可以回答。 –

+0

@ domfarr ..我的前端正在另一台服务器(npm)上运行。我尝试在sparkjava发送请求到我的路由,但是我得到了交叉错误。我已经放入了响应标头,允许跨越原点和所有HTTP方法,但它仍然会给出相同的错误。 –

为了使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;