gpt4 book ai didi

javascript - 为什么这个 JavaScript 调用没有破坏 "same origin policy"

转载 作者:行者123 更新时间:2023-12-01 02:13:07 25 4
gpt4 key购买 nike

我正在使用 jQuery 显示外部 JavaScript 文件。 “同源策略”没有被破坏的原因是因为它不是 AJAX 请求吗?

http://jsfiddle.net/m7q3H/52/

fiddle 代码:

HTML

<body>
<div id="toupdate">
<script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/6343621.js"></script>
</div>
</body>​

jQuery

$(document).ready(function() {
console.log('HTML is '+$('#toupdate').html());
});​

最佳答案

哦,这里绝对没问题。您可以从任何您想要的地方引用 javascript 文件。例如,Google CDN 提供了常见的 js 文件,例如您可以使用的 jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

顺便说一句,这正是 jQuery 实现 JSONP 的方式。作品。它使用 javascript 注入(inject) <script>动态标记到指向某个远程服务器端脚本的 DOM:

<script src="//remotedomain.com/script?callback=abc"></script>

此远程脚本响应 Content-Type: 'application/x-javascript'响应 header 和以下正文:

abc({"foo":"bar"})

在您的域上,您只需定义 abc功能:

<script type="text/javascript">
function abc(data) {
alert(data.foo);
}
</script>

就这样:跨域 AJAX 的模拟(我说模拟是因为它没有使用 native XHR 对象,但它达到了相同的效果)。

现在您可以理解为什么 jQuery 的 JSONP 实现仅限于 GET 请求 => 因为当您注入(inject)脚本标记时,浏览器仅向其 src 发送 GET 请求。属性。

关于javascript - 为什么这个 JavaScript 调用没有破坏 "same origin policy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11991915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com