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我没有说服务器会强制它,只是说它在其中起了作用。