为什么这个JavaScript调用没有打破“同源策略”

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

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

小提琴代码:

HTML

 

jQuery的

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

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

  

顺便说一下,jQuery的JSONP实现方式正是如此。 它使用javascript动态地将标记注入指向某个远程服务器端脚本的DOM:

  

此远程脚本使用Content-Type: 'application/x-javascript'响应标头和以下正文进行响应:

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

在您的域上,您只需定义abc函数:

  

然后你去:模拟一个跨域AJAX(我说模拟,因为它不使用原生的XHR对象,但它实现了相同的效果)。

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

是。 您可以使用script标记从其他域加载脚本,但不能使用XmlHTTPRequest对象(AJAX请求)来发出跨域请求。

只要你的外部.js被加载

标记相同的源策略认为它是您信任的安全js。