为什么我无法通过此 JavaScript 从我的 Spark 服务器接收到 REST 响应? (你好世界!)

Why am I not able to receive a REST response from my Spark server via this JavaScript? (Hello World!)

我设置了最简单的 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

浏览器实施了一项名为 CORS which you need to enable in Spark. There's a tutorial on how to do that here

的安全功能