1

我有一个简单的 HTML 测试文件,用于从 java 脚本接收 JSON 对象的服务器,其中有一个创建 JSON 文件然后尝试将此 JSON 发送到这样的本地主机服务器。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body>
  <button type="button" onclick="doPost()">
    POST
  </button>
  <script src="/home/tcremers/projects/utopiaPlugins/src/3dmUtopia/js/libs/jquery.js"></script>
  <script>
  function doPost() {
    var JSONdata = {jsonobject}

    try{
    $.ajax({
        type: 'POST',
        url: "http://localhost:8080/validation-web/annotation/persist",
        contentType:'application/json',
        data: JSON.stringify(JSONdata),
        dataType:'json'
    });
    console.log("do you even output")
    }
    catch(e) {
        console.log("errrrorrrrr")
        conlole.log(e)
    }
}
  </script>
</body>
</html>

服务器有一些 JAVA 代码,将其设置为仅在您首次启动服务器的命令终端中返回 json 对象。但在它到达服务器之前,我铬给出了“Access-Control-Allow-Origin不允许Origin null”。

现在我知道由于安全问题,最初不允许跨域 AJAX,而且我还读到您可以禁用它。我只是没有看到任何关于如何禁用此安全功能的明确答案的帖子。例如,我尝试在命令行禁用所有安全性的情况下运行 chromium,但并没有这样做。我还阅读了很多关于我必须将 Access-Control-Allow-Origin 设置为“*”或运行 java 脚本的目录路径的信息,因此将启用跨域 AJAX。也许是我,但我还没有看到任何关于在哪里实际更改或插入此命令的明确解释。我也已经尝试将 jsonp 与“GET”请求一起使用,但这也不起作用。

我知道的实际服务器可以工作,因为我已经使用 curl 命令对其进行了测试。

 curl -X POST -H "Content-Type: application/json" -d '{the JSON object}' http://localhost:8080/validation-web/annotation/persist

现在对我来说真正奇怪的是这个。我想使用此 AJAX 请求的主要 java 脚本代码根本没有在 Web 浏览器中运行(在我看来,跨域限制应该没有任何问题)并且已经包含许多其他服务器请求。这个脚本仍然在这个特定的 AJAX 请求上给出了类似的错误。这是错误消息:"XMLHttpRequest cannot load, http://localhost:8080 etc..., Cannot make any requests from null

有人知道我的问题是什么,或者可以指出我解决这个错误的正确方向吗?这将不胜感激。

4

0 回答 0