Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同源策略冲突,但数据无法发送_Javascript_Same Origin Policy - Fatal编程技术网

Javascript 同源策略冲突,但数据无法发送

Javascript 同源策略冲突,但数据无法发送,javascript,same-origin-policy,Javascript,Same Origin Policy,我正在用javascript编写一个小跟踪器。此跟踪器只获取当前访问的网站以及所有需要的信息。它还跟踪ajax事件。对应的是一个java程序,它与Web服务器托管在同一台机器上,但侦听不同的端口。我的javascript程序应该无法发送数据,因为相同的源策略(不同的端口)。chrome中的控制台告诉我: XMLHttpRequest cannot load http://127.0.0.1:8082/posts. No 'Access-Control-Allow-Origin' header i

我正在用javascript编写一个小跟踪器。此跟踪器只获取当前访问的网站以及所有需要的信息。它还跟踪ajax事件。对应的是一个java程序,它与Web服务器托管在同一台机器上,但侦听不同的端口。我的javascript程序应该无法发送数据,因为相同的源策略(不同的端口)。chrome中的控制台告诉我:

XMLHttpRequest cannot load http://127.0.0.1:8082/posts. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8081' is therefore not allowed access.
我没有得到的是,数据被发送到服务器!我在不同的机器上(使用不同的ip)对此进行了双重检查。我只是想知道为什么。我没有自己编写send方法,这就是我没有真正理解它的原因

//sending data to server-tracker
function sendData(data)
{
    console.log("Sending data: ");
    console.log(data);
    var xhr = window.XMLHttpRequest
        ? new window.XMLHttpRequest()
        : window.ActiveXObject
        ? new ActiveXObject('Microsoft.XMLHTTP')
        : null;
    xhr.open('POST', "http://127.0.0.1:8082/posts", true);
    xhr.send(data);
}

感谢您的帮助。

同源策略主要阻止JavaScript从其他来源读取数据

它具有一些功能,可防止在某些情况下向其他来源发送数据。这些可以总结为“当请求不能使用HTML表单构造时”。这些触发请求发送实际请求的权限


跨源请求伪造是一个不同的问题,最好通过使用a(存储在站点上的HTML文档中(因此只能通过从该站点发起的请求发送)和用户会话(用于比较提交的请求)来解决.

同源策略只会停止响应。没有请求就没有响应,因此必须传递响应。如果要阻止来自其他域的请求,则必须自己在服务器应用程序中处理。我真的不知道,谢谢!