亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

jQuery Ajax使用心得詳細整理及注意事項

2024-09-01 08:26:37
字體:
來源:轉載
供稿:網友
IE7及以下請求方式用GET的話,URL的限制是個很容易忽視的問題(最大2083個字符)。所以如果URL有可能過長的話,一定要用POST。
--------------------------------------------------------------------------------
終止Ajax請求
終止請求需要調用XMLHttpRequest對象的abort()方法
而在jQuery中的$.get,$.post、$.ajax、$.getJSON、$.getScript...的返回值都是XMLHttpRequest對象.
調用abort()后,ajax請求立即停止,但仍然會執行success的回調函數
所以在success的回調函數中需要先判斷 ajaxGet 或 data是否存在,存在才執行回調函數
復制代碼 代碼如下:VeVb.com

var ajaxGet = $.get(someURL,someData,function(data){
if(!data)return true;
//TODO
});
ajaxGet.abort();

說到跨域資源共享(CORS Cross-Origin Resoure Sharing),現在正變的越來越重要。各種地圖API,微博API等等,網站開發人員不必自己去放衛星,只要根據別人開放的接口,就能獲取到這些數據。
這得益于跨源策略。

JSONP就是跨源策略的一種方案?;驹砭褪抢脼g覽器允許跨域獲取script資源(包括圖片)的特點,在服務器端生成script Tag,并傳回客戶端。

要注意的是,服務器端返回的不是JSON格式的字符串,而是callbackName+"("+JSON_string+")"也就是JSONP。

這就相當于服務器把一段JS代碼(被賦值的函數)返回瀏覽器,然后立即執行。
所以,在瀏覽器端發送的URL中(以GET的形式),需要把回調函數名傳入。
客戶端:
復制代碼 代碼如下:VeVb.com

function deal(data){
//TODO
}
var s= document.createElement("script")
//不必一定叫callback,但是一定要跟服務器端的Request.QueryString匹配
s.src = "http://172.20.2.60:8088/newwebsite/MyHandler.ashx?callback=func";
document.body.appendChild(s)

服務器端(.Net)
復制代碼 代碼如下:VeVb.com

<%@ WebHandler Language="C#" Class="Test" %>
using System;
using System.Web;
public class Test : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.Charset = "utf-8";
context.Response.ContentType = "text/javascript";
string callback = context.Request.QueryString["callback"];//回調函數名
string json = "{'name':'Ray','msg':'hello world!'}";//JSON格式的字符串
string result = string.Format("{0}({1})", callback, json);
context.Response.Write(result);
context.Response.Flush();
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
}

用jQuery的話,URL中就不用加回調函數名了,因為jQuery已經為你代勞了,而這個回調函數就是success。
復制代碼 代碼如下:VeVb.com

$.ajax({
url: "http://172.20.2.60:8088/newwebsite/MyHandler.ashx"
, dataType: "jsonp"
, success: function(data) {
//TODO
}
});

JSONP很強大,但是也有兩個讓人蛋疼的地方,首先是安全性問題。
不管怎么說你都是從別人的地盤倒騰數據,而且內容還是腳本!也就是說如果人家是個壞人,給你點惡意代碼,那就不好辦了。

當然這個問題一般也不會發生。畢竟咱想請求數據的地方都是咱熟悉的要么就是官方的(什么谷歌地圖API,新浪微博API這些顯然不會給你坑)。

另一個問題就鬧心了。瀏覽器端對JSONP的請求是否失敗是無法直接知曉的。就算用jQuery,error也不起作用。就算出錯了try,catch也捕捉不到。

所以暫時知道的只有一種不完美方法,就是設定一個時限,如果超過時限還沒有數據返回,那么就判定error。說不完美是因為,各家的網速是不同的,所以...你懂得。
--------------------------------------------------------------------------------
jQuery中contentType相關
jQuery官網原文
復制代碼 代碼如下:VeVb.com

contentType
Default: 'application/x-www-form-urlencoded; charset=UTF-8'
When sending data to the server, use this content type.
Default is "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases.
If you explicitly pass in a content-type to $.ajax(),
then it'll always be sent to the server (even if no data is sent).
If no charset is specified, data will be transmitted to the server using the server's default charset;
you must decode this appropriately on the server side.

通過這段文字我們就可以知道在jQuery ajax中 contentType默認是'application/x-www-form-urlencoded; charset=UTF-8' 當然這是最新版jQuery的。相對于以前版本是有些許變化的。

如果想將一個對象序列化后傳向后臺,可以將contentType設置為'application/json'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本电影亚洲天堂| 亚洲免费视频在线观看| 国产精品第2页| 日韩精品免费在线视频观看| 日韩免费在线播放| 亚洲欧美日韩成人| 亚洲国产精品高清久久久| 岛国视频午夜一区免费在线观看| 亚洲天堂av在线免费| 97热精品视频官网| 亚洲国产精品网站| 国产午夜精品美女视频明星a级| 性欧美在线看片a免费观看| 伊人av综合网| 久久精品人人爽| 亚洲91精品在线| 国产精品美女久久久久av超清| 成人免费视频网| 亚洲午夜未满十八勿入免费观看全集| 亚洲精品自在久久| 精品一区二区三区四区在线| www.亚洲一二| 久久综合色影院| 国产精品欧美激情在线播放| 亚洲国产精品视频在线观看| 毛片精品免费在线观看| 91亚洲国产成人久久精品网站| 久久精品色欧美aⅴ一区二区| 亚洲天堂免费在线| 久久久999成人| 久久精品影视伊人网| 国产日产欧美精品| 黄色一区二区三区| 亚洲成人久久久| 色老头一区二区三区| 最近2019年好看中文字幕视频| 亚洲激情视频在线播放| 亚洲天堂av高清| 久久99视频免费| 成人a免费视频| 97香蕉久久夜色精品国产| 成人444kkkk在线观看| 久久久国产精彩视频美女艺术照福利| 亚洲自拍偷拍色图| 91欧美激情另类亚洲| 亚洲欧美综合v| 日韩中文在线观看| 欧美高清videos高潮hd| 一级做a爰片久久毛片美女图片| 亚洲护士老师的毛茸茸最新章节| 欧美激情乱人伦一区| 久久久这里只有精品视频| 亚洲天堂av女优| 97久久久免费福利网址| 久久久国产精品一区| 亚洲国产精品系列| 日日骚av一区| 国内成人精品视频| 久久久精品国产网站| 欧美在线观看网站| 亚洲国产婷婷香蕉久久久久久| 久久97久久97精品免视看| 亚洲精品一区中文字幕乱码| 2019日本中文字幕| 欧美日韩亚洲一区二区| 国产精品视频免费观看www| 欧美日韩成人黄色| 亚洲欧洲国产一区| 51视频国产精品一区二区| 国产日韩一区在线| 国产精品专区h在线观看| 欧美日韩亚洲天堂| 国产一区二区丝袜高跟鞋图片| 亚洲欧美中文日韩在线| 午夜精品久久久久久久99热浪潮| 国产精品白丝jk喷水视频一区| 欧美日韩国产二区| 亚洲午夜未满十八勿入免费观看全集| 国产精品91视频| 亚洲日本欧美日韩高观看| 91精品国产乱码久久久久久蜜臀| 最近2019中文字幕一页二页| 日韩免费在线看| 亚洲精品www久久久| 亚洲成色777777女色窝| 91亚洲精品视频| 久久精品影视伊人网| 国产成人精品a视频一区www| 久久久免费高清电视剧观看| 欧美激情网友自拍| 国产女人精品视频| 欧美日韩一区二区在线| 日本久久久久亚洲中字幕| 久久久噜噜噜久久久| 国产69精品久久久久久| 欧美一区深夜视频| 日韩av在线电影网| 欧美激情xxxx性bbbb| 国产一区二区三区在线观看视频| 91精品视频在线免费观看| 国产丝袜精品视频| 宅男66日本亚洲欧美视频| 久久精品色欧美aⅴ一区二区| 久久久91精品| 日韩欧美中文字幕在线观看| 韩国日本不卡在线| 97色在线观看| 国产日韩欧美91| 亚洲性av网站| 高清日韩电视剧大全免费播放在线观看| 亚洲成人av资源网| 久久久综合免费视频| 欧美成人精品一区| 欧美孕妇与黑人孕交| 国产91在线视频| 一区二区三区美女xx视频| 国产精品久久久久国产a级| 午夜精品在线观看| 狠狠久久五月精品中文字幕| 在线播放日韩专区| 日韩精品在线观看视频| 亚洲欧美视频在线| 欧美在线一区二区视频| 在线a欧美视频| 中文字幕在线成人| 国产欧美最新羞羞视频在线观看| 国产成人精品久久二区二区91| 欧美成人精品在线视频| 97视频在线观看免费高清完整版在线观看| 中文字幕在线看视频国产欧美| 亚洲成年人在线播放| 久久久久久久久网站| 国产成人高潮免费观看精品| 欧美国产日韩一区二区在线观看| 国产一区二区香蕉| 亚洲国产精品中文| 久久精品国产免费观看| 久久久精品欧美| 欧美精品久久久久久久久| 中文字幕亚洲天堂| 欧美日韩国内自拍| 日韩亚洲欧美成人| 欧美国产视频日韩| 久久国产色av| 亚洲欧美国产精品久久久久久久| 国产一区二区丝袜| 亚洲精品在线观看www| 97在线免费观看| 欧美美女15p| 日韩精品久久久久久久玫瑰园| 成人免费视频在线观看超级碰| 日韩成人高清在线| 欧美成人性色生活仑片| 亚洲欧美精品一区二区| xx视频.9999.com| 亚洲欧美福利视频| 九九精品视频在线| 亚洲丁香婷深爱综合| 国产精品麻豆va在线播放| 日韩av手机在线看| 97在线看福利| 在线播放国产精品| 国产精品视频一| 国产精品自产拍高潮在线观看|