ajax中的脚本标签技巧

ajax中的脚本标签技巧

安全约束不允许我们使用XMLHttpRequest对象来读取正在执行的JavaScript文件所在域之外的其他域。这就意味着我们不能像下面这样连接远程服务器:

xhr.open("GET","http://www.baidu.com/",true);

我们不能用xhr来访问其他网站所提供的API。这很糟糕,因为大多数的API所返回的数据都是XML格式的,这导致本来可以用responseXML获取的,而现在不允许这么干了。

那如果我们还想跨服务器怎么办呢?别着急,往下看。

我们知道script标签没有类似的安全限制,能够绕过同源策略。比如像下面这样使用:

<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js"></script>

(Notice:通过这种方式那么我们就可以使用百度CDN提供的jquery文件了。)

所以…你现在是不是想到了什么?

是的,就是借鉴标签的用法。继续往下看。
如果我们能够获取其他服务器上的javascript文件,那么也就可以得到JSON文件。记住,JSON和JavaScript是一样的。
我们可以用DOM脚本动态生成script元素,就实现啦。 下面我创建了一个实现这些功能的函数:

function getScript(url){
            var tag=document.createElement("script");
            tag.setAttribute("src",url);
            docuemnt.getElementsByTagName("head")[0].appendChild(tag);
        }

这个函数把一个url传进来,并创建了一个新的script标签,把这个url作为它的src属性,最后再把这个标签(元素)添加到文档的head元素中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值