2015-10-07 95 views
0

我想用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方法,但它仍然會給出相同的錯誤。 –

回答

0

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