jQuery跨域問題解決方案
通過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>
結(jié)果會在當前的網(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>
結(jié)果會在當前的網(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的方法傳回結(jié)果。
JSONP跨域訪問的缺點:
1.它只支持GET請求而不支持POST及其他類型的請求;
2.它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調(diào)用的問題。
- jQuery使用ajax跨域獲取數(shù)據(jù)的簡單實例
- java 結(jié)合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法
- JQuery 的跨域方法推薦_可跨任何網(wǎng)站
- 深入理解jquery跨域請求方法
- jquery中ajax處理跨域的三大方式
- jquery中ajax跨域方法實例分析
- jQuery使用ajax跨域請求獲取數(shù)據(jù)
- jquery+ajax實現(xiàn)跨域請求的方法
- jquery的ajax跨域請求原理和示例
- jquery跨域請求示例分享(jquery發(fā)送ajax請求)
- 利用JQuery和Servlet實現(xiàn)跨域提交請求示例分享
- jQuery 獲取跨域XML(RSS)數(shù)據(jù)的相關(guān)總結(jié)分析
相關(guān)文章
Jquery.TreeView結(jié)合ASP.Net和數(shù)據(jù)庫生成菜單導航條
在網(wǎng)上瀏覽了許多關(guān)于利用Jquery.TreeView插件生成樹的例子!但是大多數(shù)都沒有結(jié)合數(shù)據(jù)庫來生成樹,很難運用到實際項目中!2010-08-08
AMD異步模塊定義介紹和Require.js中使用jQuery及jQuery插件的方法
這篇文章主要介紹了AMD異步模塊定義介紹和Require.js中使用jQuery及jQuery插件的方法,需要的朋友可以參考下2014-06-06
jQuery中(function(){})()執(zhí)行順序的理解
function的順序是這樣的:先計算第一個小括號,發(fā)現(xiàn)里面的表達式是一個函數(shù),返會該匿名函數(shù)的引用(指針),最后一個括號則是建立匿名函數(shù)的實參和并執(zhí)行,感興趣的你可以參考下本文2013-03-03

