jquery的ajax跨域請求原理和示例
今天在項目中需要做遠程數(shù)據(jù)加載并渲染頁面,直到開發(fā)階段才意識到ajax跨域請求的問題,隱約記得Jquery有提過一個ajax跨域請求的解決方式,于是即刻翻出Jquery的API出來研究,發(fā)
JQuery對于Ajax的跨域請求有兩類解決方案,不過都是只支持get方式。分別是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。
什么是jsonp格式呢?API原文:如果獲取的數(shù)據(jù)文件存放在遠程服務器上(域名不同,也就是跨域獲取數(shù)據(jù)),則需要使用jsonp類型。使用這種類型的話,會創(chuàng)建一個查詢字符串參數(shù) callback=? ,這個參數(shù)會加在請求的URL后面。服務器端應當在JSON數(shù)據(jù)前加上回調函數(shù)名,以便完成一個有效的JSONP請求。意思就是遠程服務端需要對返回的數(shù)據(jù)做下處理,根據(jù)客戶端提交的callback的參數(shù),返回一個callback(json)的數(shù)據(jù),而客戶端將會用script的方式處理返回數(shù)據(jù),來對json數(shù)據(jù)做處理。JQuery.getJSON也同樣支持jsonp的數(shù)據(jù)方式調用。
客戶端JQuery.ajax的調用代碼示例:
$.ajax({
type : "get",
async:false,
url : "http://www.xxx.com/ajax.do",
dataType : "jsonp",
jsonp: "callbackparam",//服務端用于接收callback調用的function名的參數(shù)
jsonpCallback:"success_jsonpCallback",//callback的function名稱
success : function(json){
alert(json);
alert(json[0].name);
},
error:function(){
alert('fail');
}
});
服務端返回數(shù)據(jù)的示例代碼:
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
String callbackFunName = context.Request["callbackparam"];
context.Response.Write(callbackFunName + "([ { name:\"John\"}])");
}
相關文章
基于jQuery的試卷自動排版系統(tǒng)實現(xiàn)代碼
題目提干、選擇題的選項、說明文字可以包含多媒體信息(文字、圖片、列表、表格、視頻等等……)。2011-01-01jQuery實現(xiàn)簡單網(wǎng)頁遮罩層/彈出層效果兼容IE6、IE7
自寫寫的一個jQuery插件,可以實現(xiàn)簡單網(wǎng)頁遮罩層/彈出層功能,并且兼容IE6、IE7,需要的朋友可以參考下2014-06-06Jquery easyui 實現(xiàn)動態(tài)樹
本文給大家介紹jquery easyui實現(xiàn)動態(tài)樹,本文通過代碼實例相結合的方式給大家展示jquery easyui實現(xiàn)動態(tài)樹的過程,感興趣的朋友一起學習吧2015-11-11jQuery插件HighCharts繪制2D柱狀圖、折線圖和餅圖的組合圖效果示例【附demo源碼下載】
這篇文章主要介紹了jQuery插件HighCharts繪制2D柱狀圖、折線圖和餅圖的組合圖效果,結合實例形式分析了jQuery使用HighCharts插件同時繪制折線圖、柱狀圖、餅狀圖組合圖效果的操作步驟與相關實現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03jquery打開直接跳到網(wǎng)頁最下面、最低端實現(xiàn)代碼
接下來為大家詳細介紹下jquery如何實現(xiàn)打開直接跳到網(wǎng)頁最下面,最低端,感興趣的朋友可以參考下哈2013-04-04