jQuery跨域問(wèn)題解決方案
通過(guò)XMLHTTPRquest請(qǐng)求不同域上的數(shù)據(jù),原來(lái)js跨域訪問(wèn)是后臺(tái)有個(gè)處理路徑“/test”的函數(shù)。下面把具體解決方案介紹如下。
后臺(tái)處理路徑“/test”的函數(shù):
//路徑處理
app.get("/test",user.test);
//處理函數(shù)
exports.test=function(req,res){
res.end("alert('JS跨域訪問(wèn)')");
};
外部有一個(gè)網(wǎng)頁(yè)需要訪問(wèn)路徑”/test“下的內(nèi)容,則可以通過(guò)JS腳本文件來(lái)跨域訪問(wèn):
//處理函數(shù)
<script>
function method(data){
console.log(data);
}
</script>
//跨域訪問(wèn)
<script src="http://localhost:3000/test"></script>
結(jié)果會(huì)在當(dāng)前的網(wǎng)頁(yè)中彈出一個(gè)窗口:

jQuery中JSONP跨域訪問(wèn)的實(shí)現(xiàn):
同樣在后臺(tái)有一個(gè)處理路徑“/test”的函數(shù):
//路徑處理
app.get("/test",user.test);
//處理函數(shù)
exports.test=function(req,res){
res.end("method("+JSON.stringify({mes:"跨域訪問(wèn)成功!"})+")");
};
外部有一個(gè)網(wǎng)頁(yè)需要訪問(wèn)路徑”/test“下的內(nèi)容,通過(guò)JSONP來(lái)實(shí)現(xiàn)跨域訪問(wèn):
//引入跨域訪問(wèn)中的jQuery函數(shù)庫(kù)
<script src="http://localhost:3000/js/jquery-1.9.1.min.js"></script>
//jQuery中JSONP跨域訪問(wèn)
<script>
$.ajax({
url:"http://localhost:3000/test",
type:"get",
success:function(data){
$("body").append(data.mes);
},
dataType:"jsonp",
jsonpCallback:"method"
});
</script>
結(jié)果會(huì)在當(dāng)前的網(wǎng)頁(yè)中顯示如下信息:

通過(guò)上述代碼我們可以看出JSOPN跨域訪問(wèn)和原始的JS跨域訪問(wèn)的不同之處是JSONP不需要寫(xiě)處理跨域訪問(wèn)的函數(shù)(例如上述方法中使用的method函數(shù)),在JSONP跨域訪問(wèn)時(shí)會(huì)自動(dòng)幫我們創(chuàng)建處理跨域訪問(wèn)的函數(shù)。
JSONP跨域訪問(wèn)的優(yōu)點(diǎn):
1.它不像XMLHTTPRequest對(duì)象實(shí)現(xiàn)的AJAX請(qǐng)求那樣受到同源策略的限制;
2.它的兼容性更好,不需要XMLHTTPRequest或ActiveX的支持;
3.在請(qǐng)求完成后可以通過(guò)調(diào)用callback的方法傳回結(jié)果。
JSONP跨域訪問(wèn)的缺點(diǎn):
1.它只支持GET請(qǐng)求而不支持POST及其他類型的請(qǐng)求;
2.它只支持跨域HTTP請(qǐng)求這種情況,不能解決不同域的兩個(gè)頁(yè)面之間如何進(jìn)行JavaScript調(diào)用的問(wèn)題。
- jQuery使用ajax跨域獲取數(shù)據(jù)的簡(jiǎn)單實(shí)例
- java 結(jié)合jQuery實(shí)現(xiàn)跨域名獲取數(shù)據(jù)的方法
- JQuery 的跨域方法推薦_可跨任何網(wǎng)站
- 深入理解jquery跨域請(qǐng)求方法
- jquery中ajax處理跨域的三大方式
- jquery中ajax跨域方法實(shí)例分析
- jQuery使用ajax跨域請(qǐng)求獲取數(shù)據(jù)
- jquery+ajax實(shí)現(xiàn)跨域請(qǐng)求的方法
- jquery的ajax跨域請(qǐng)求原理和示例
- jquery跨域請(qǐng)求示例分享(jquery發(fā)送ajax請(qǐng)求)
- 利用JQuery和Servlet實(shí)現(xiàn)跨域提交請(qǐng)求示例分享
- jQuery 獲取跨域XML(RSS)數(shù)據(jù)的相關(guān)總結(jié)分析
相關(guān)文章
Jquery和Js獲得元素標(biāo)簽名稱的方法總結(jié)
下面小編就為大家?guī)?lái)一篇Jquery和Js獲得元素標(biāo)簽名稱的方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
使用jQuery 操作table 完成單元格合并的實(shí)例
下面小編就為大家分享一篇使用jQuery 操作table 完成單元格合并的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
jQuery簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)選項(xiàng)卡特效
本文給大家分享一段基于jQuery簡(jiǎn)單實(shí)現(xiàn)的網(wǎng)頁(yè)選項(xiàng)卡代碼,非常簡(jiǎn)單實(shí)用,這里推薦給小伙伴們。2014-11-11
Jquery.TreeView結(jié)合ASP.Net和數(shù)據(jù)庫(kù)生成菜單導(dǎo)航條
在網(wǎng)上瀏覽了許多關(guān)于利用Jquery.TreeView插件生成樹(shù)的例子!但是大多數(shù)都沒(méi)有結(jié)合數(shù)據(jù)庫(kù)來(lái)生成樹(shù),很難運(yùn)用到實(shí)際項(xiàng)目中!2010-08-08
AMD異步模塊定義介紹和Require.js中使用jQuery及jQuery插件的方法
這篇文章主要介紹了AMD異步模塊定義介紹和Require.js中使用jQuery及jQuery插件的方法,需要的朋友可以參考下2014-06-06
jQuery實(shí)現(xiàn)選項(xiàng)卡功能(兩種方法)
本文主要介紹了jQuery兩種方法寫(xiě)選項(xiàng)卡的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
jQuery中(function(){})()執(zhí)行順序的理解
function的順序是這樣的:先計(jì)算第一個(gè)小括號(hào),發(fā)現(xiàn)里面的表達(dá)式是一個(gè)函數(shù),返會(huì)該匿名函數(shù)的引用(指針),最后一個(gè)括號(hào)則是建立匿名函數(shù)的實(shí)參和并執(zhí)行,感興趣的你可以參考下本文2013-03-03

