最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JQuery Ajax 跨域訪問的解決方案

 更新時(shí)間:2010年03月12日 16:56:32   作者:  
我們知道ajax本身實(shí)際上是通過XMLHttpRequest對(duì)象來異步進(jìn)行數(shù)據(jù)的交互,而瀏覽器出于安全考慮,不允許js代碼進(jìn)行跨域操作,所以js跨域操作會(huì)被拒絕。
具體情況有:
一、本域和子域的相互訪問: http://www.aa.com/和book.aa.com
二、本域和其他域的相互訪問: http://www.aa.com/和http://www.bb.com/ 用 iframe
三、本域和其他域的相互訪問: http://www.aa.com/和http://www.bb.com/ 用 XMLHttpRequest訪問代理
四、本域和其他域的相互訪問: http://www.aa.com/和http://www.bb.com/ 用 JS創(chuàng)建動(dòng)態(tài)腳本
今天主要討論第4中解決方案,這個(gè)和上個(gè)的區(qū)別就是請(qǐng)求是使用<script>標(biāo)簽來請(qǐng)求的,這個(gè)要求也是兩個(gè)域都是由你來開發(fā)才行。原理就是JS文件注入,在本域內(nèi)的a內(nèi)生成一個(gè)JS標(biāo)簽,它的SRC指向請(qǐng)求的另外一個(gè)域的某個(gè)頁面b,b返回?cái)?shù)據(jù)即可,可以直接返回JS的代碼。因?yàn)閟cript的src屬性是可以跨域的。
這里我們需要用到JQuery.getScript(url, callback)方法,url是腳本文件的URL路勁,callback函數(shù)在腳本資源已被加載和求值后調(diào)用的回調(diào)函數(shù)。
首先在bb.com創(chuàng)建一個(gè)js文件,test.js
復(fù)制代碼 代碼如下:

var ojb = {msg:'js跨域請(qǐng)求成功'};

然后在aa.com的頁面上使用$.getScript加載test.js腳本
復(fù)制代碼 代碼如下:

$(function() {
$.getScript('http://www.bb.com/test.js', function() {
if (ojb) {
alert(obj.msg);
}
});
});

使用$.getScript函數(shù)的最大好處就是可以保證,腳本加載完畢后調(diào)用回調(diào)函數(shù)。
個(gè)人感覺這種方法比使用代理和iframe要簡單一些。

相關(guān)文章

最新評(píng)論

邯郸市| 瑞昌市| 长宁县| 富裕县| 上高县| 商南县| 新绛县| 沈阳市| 龙井市| 拜泉县| 吴桥县| 南平市| 桐柏县| 商河县| 南昌县| 瑞昌市| 灌南县| 徐汇区| 建湖县| 喀喇| 霍山县| 德保县| 望江县| 义马市| 西乌珠穆沁旗| 雅江县| 尉氏县| 灵石县| 华池县| 剑阁县| 长丰县| 沁源县| 清远市| 稷山县| 丹棱县| 五台县| 崇信县| 大竹县| 额济纳旗| 台东县| 珠海市|