Javascript 针对不同可能的请求类型和场景的同源策略规则

Javascript 针对不同可能的请求类型和场景的同源策略规则,javascript,ajax,browser,same-origin-policy,Javascript,Ajax,Browser,Same Origin Policy,我正在努力理解同一原产地政策。(以下仅假设跨来源请求。) 根据我到目前为止所了解的情况,对于某些请求,它只允许写入,尽管请求通过,但响应是不可读的,例如跨源XMLHttpRequest/AJAX GET请求(具有安全/允许的头)。在某些情况下,请求都会通过,并且响应是可读的,例如在跨源iframe请求中。而在其他情况下,会进行飞行前检查,如果检查成功,则会执行请求,并且响应是可读的,例如跨源XMLHttpRequest/AJAX删除请求 为了更好地理解这一点,我制作了一个包含可能的请求类型的表,

我正在努力理解同一原产地政策。(以下仅假设跨来源请求。) 根据我到目前为止所了解的情况,对于某些请求,它只允许写入,尽管请求通过,但响应是不可读的,例如跨源XMLHttpRequest/AJAX GET请求(具有安全/允许的头)。在某些情况下,请求都会通过,并且响应是可读的,例如在跨源iframe请求中。而在其他情况下,会进行飞行前检查,如果检查成功,则会执行请求,并且响应是可读的,例如跨源XMLHttpRequest/AJAX删除请求

为了更好地理解这一点,我制作了一个包含可能的请求类型的表,我想知道在每个场景中会发生什么,以及我所理解的是否正确。(如前所述,假设以下所有请求都是跨来源的。)


这比问答网站更适合维基,这就是为什么我认为你没有得到任何答案。也就是说,我相信你的表是准确的,除了iFrame。您无法读取跨原点iframe的响应。好的,谢谢。如果跨源iFrame无法读取响应,那么他们如何加载跨源网页?我不确定我是否理解您的问题。如果我在
A.com
上的页面有一个
iframe
,其中
src
指向
B.com
,该iframe将正常加载,但我的脚本(从
A.com
加载)将无法读取iframe的内容。这与XHR
GET
的情况相同。请参阅:“试图访问框架内容的脚本受同一来源策略的约束,如果从其他域加载,则无法访问其他窗口对象中的大多数属性。”Ohh。因此,在上述任何情况下都无法读取响应,这基本上意味着脚本(来自进行跨源调用的源)无法以编程方式访问响应数据,尽管浏览器可以向用户显示响应数据?没错。同源策略的目的是防止第三方网站访问信息,而不是浏览器用户本身。现在我想起来了,
标签也是如此。(浏览器将显示它,但不允许您的脚本访问图像数据。)因此,将它们下移到下一行。