国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery跨域問題解決方案

2019-11-20 11:56:38
字體:
供稿:網(wǎng)友

通過XMLHTTPRquest請求不同域上的數(shù)據(jù),原來js跨域訪問是后臺有個處理路徑“/test”的函數(shù)。下面把具體解決方案介紹如下。

后臺處理路徑“/test”的函數(shù):

復制代碼 代碼如下:

//路徑處理
app.get("/test",user.test);
//處理函數(shù)
exports.test=function(req,res){
    res.end("alert('JS跨域訪問')");
};

 外部有一個網(wǎng)頁需要訪問路徑”/test“下的內(nèi)容,則可以通過JS腳本文件來跨域訪問:

復制代碼 代碼如下:

//處理函數(shù)
<script>
    function method(data){
        console.log(data);
    }
</script>
//跨域訪問
<script src="http://localhost:3000/test"></script>

 結果會在當前的網(wǎng)頁中彈出一個窗口:

jQuery中JSONP跨域訪問的實現(xiàn):

同樣在后臺有一個處理路徑“/test”的函數(shù):

//路徑處理app.get("/test",user.test);//處理函數(shù)exports.test=function(req,res){ res.end("method("+JSON.stringify({mes:"跨域訪問成功!"})+")");}; 外部有一個網(wǎng)頁需要訪問路徑”/test“下的內(nèi)容,通過JSONP來實現(xiàn)跨域訪問://引入跨域訪問中的jQuery函數(shù)庫<script src="http://localhost:3000/js/jquery-1.9.1.min.js"></script>//jQuery中JSONP跨域訪問<script>  $.ajax({    url:"http://localhost:3000/test",    type:"get",    success:function(data){      $("body").append(data.mes);    },    dataType:"jsonp",    jsonpCallback:"method"  });</script>

 結果會在當前的網(wǎng)頁中顯示如下信息:

通過上述代碼我們可以看出JSOPN跨域訪問和原始的JS跨域訪問的不同之處是JSONP不需要寫處理跨域訪問的函數(shù)(例如上述方法中使用的method函數(shù)),在JSONP跨域訪問時會自動幫我們創(chuàng)建處理跨域訪問的函數(shù)。

JSONP跨域訪問的優(yōu)點:

1.它不像XMLHTTPRequest對象實現(xiàn)的AJAX請求那樣受到同源策略的限制;

2.它的兼容性更好,不需要XMLHTTPRequest或ActiveX的支持;

3.在請求完成后可以通過調(diào)用callback的方法傳回結果。

JSONP跨域訪問的缺點:

1.它只支持GET請求而不支持POST及其他類型的請求;

2.它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調(diào)用的問題。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 双江| 交城县| 莱西市| 芜湖市| 南雄市| 溆浦县| 达日县| 江口县| 黄陵县| 西乌珠穆沁旗| 墨脱县| 贵定县| 迁西县| 哈密市| 玛沁县| 揭西县| 福安市| 合山市| 平江县| 成都市| 句容市| 海城市| 崇仁县| 阜新市| 临朐县| 天全县| 长丰县| 鄂州市| 新田县| 赤壁市| 巨野县| 江西省| 南漳县| 陈巴尔虎旗| 寻乌县| 稻城县| 隆德县| 饶阳县| 巴林右旗| 辉县市| 沐川县|