AJAX发布请求使Access-Control-Allow-Origin不允许使用Origin null

时间:2013-09-27 14:28:54

标签: javascript jquery ajax json

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

<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,我也读过你可以禁用它。我还没有看到任何关于如何禁用此安全功能的明确答案的帖子。 例如,我试图在命令行禁用所有安全性的情况下运行chrome,但没有这样做。我还阅读了很多关于我必须将Access-Control-Allow-Origin设置为“*”,或者将java脚本设置为运行java脚本的目录路径,因此将启用跨域AJAX。也许是我,但我还没有看到任何明确的解释,实际更改或插入此命令的位置。 我也已经尝试过使用带有'GET'请求的jsonp,但这也不起作用。

我知道的实际服务器有效,因为我已经用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

有人知道我的问题在这里或者能指出我正确的解决这个错误的方向吗?非常感谢。

0 个答案:

没有答案