【问题标题】:Why am I not able to receive a REST response from my Spark server via this JavaScript? (Hello World!)为什么我无法通过此 JavaScript 从 Spark 服务器接收 REST 响应? (你好世界!)
【发布时间】:2017-03-14 18:43:12
【问题描述】:

我有最简单的 Spark 服务器设置。它监听请求并使用简单的 json 消息进行响应。

我还有一个非常简单的网页,它向 Spark“hello world”REST URL 发出请求。

如果我在 Chrome 浏览器中请求 URL,我会得到预期的响应。但是从 JavaScript 我得到一个错误。我究竟做错了什么?它无法连接,因为它在本地主机上吗?我该怎么办?

我有以下 Spark 应用程序:

import static spark.Spark.get;
import static spark.Spark.port;

public class WebServer {

    public static void main(String[] args) {
        port(7675);
        get("/hello", (req, res)->{
            System.out.println("Hello");
            res.type("application/json");
            return "Hello";
        });
    }
}

我有以下 JavaScript:

function onLoad(){
    alert("Loaded")
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "http://localhost:7675/hello/",  false);
    xhttp.setRequestHeader("Content-type", "application/json")
    try{
        xhttp.send();
    } catch(e){
        alert(e);
    }
}

在以下 html 中工作:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="testPage.css">
  <script type="text/javascript" src="testPage.js"></script>
</head>

<body onload="onLoad()">
<div id="div1"></div>
</body>
</html>

但是,当我加载页面时,我从 catch 子句中收到以下警报:

NetworkError: Failed to execute 'send' on 'XMLHttpRequest':Failed to load 'http://localhost:7675/hello

【问题讨论】:

    标签: javascript spark-java


    【解决方案1】:

    浏览器实现了一个名为CORS 的安全功能,您需要在 Spark 中启用该功能。有一个关于如何做到这一点的教程here

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2023-01-19
      • 2023-03-10
      • 2021-11-19
      • 2010-10-16
      • 1970-01-01
      • 2020-07-17
      • 2019-08-20
      相关资源
      最近更新 更多