Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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_Jquery_Ajax_Cross Domain_Xss - Fatal编程技术网

Javascript 跨原产地政策是如何运作的?

Javascript 跨原产地政策是如何运作的?,javascript,jquery,ajax,cross-domain,xss,Javascript,Jquery,Ajax,Cross Domain,Xss,这让我很困惑。假设我在浏览器中打开了两个选项卡,一个在http://aaa.com和http://bbb.com 假设我提出一个请求 $ajax({ method : 'POST', url : 'http://aaa.com/SomeAction', ... }); 从浏览器的JavaScript控制台。我理解跨源策略的方式是,服务器只允许在我输入的JS控制台是http://aaa.com。但是服务器怎么知道这一点呢?我的浏览器是否会向它发送一个标题,告诉它请求来自

这让我很困惑。假设我在浏览器中打开了两个选项卡,一个在
http://aaa.com
http://bbb.com

假设我提出一个请求

$ajax({
    method : 'POST',
    url : 'http://aaa.com/SomeAction',
    ... 
});
从浏览器的JavaScript控制台。我理解跨源策略的方式是,服务器只允许在我输入的JS控制台是
http://aaa.com
。但是服务器怎么知道这一点呢?我的浏览器是否会向它发送一个标题,告诉它请求来自何处

服务器只允许在JS 我输入的控制台是
http://aaa.com

不是真的

没有什么能阻止example.com向example.org发送AJAX请求。但是,同源策略将阻止example.com读取返回的响应


在客户端浏览器而不是服务器上强制执行。

您可以打开
网络
选项卡,选择
$的url。ajax()
请求,单击
标题
选项卡,滚动到
Request Headers
,查看请求的请求和响应头。服务器不必知道任何事情–强制执行此策略的是客户端。(除非我们在这里谈论的是CORS,否则服务器当然也必须扮演自己的角色。)@CBroe-即使使用CORS,服务器也不会强制执行策略;它会使它放松。@Quentin我没有说服务器会强制它,只是说它在其中起了作用。