Ajax 板


LINE

http://s25g5d4.sg1010.myweb.hinet.net/json.htm 這次順便連XMLHttpRequest方法封裝一起講好了 先說方法封裝是偷來的... function request(url, callback, data) { var xmlHttp = createXMLHTTPObject(); //建立XMLHttpRequest物件 if ( ! xmlHttp) return; var method = (data) ? "POST" : "GET"; xmlHttp.open(method, url, true); //到這裡還沒傳出去喔 if (data) { xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState != 4) return;//等於4時才代表請求完成 if (xmlHttp.status != 200 && xmlHttp.status != 304) {//HTTP 200代表請求成功 反之就未成功 alert('HTTP請求錯誤 ' + xmlHttp.status); return; } var jsonObj = eval('(' + xmlHttp.responseText + ')'); //將取得的字串轉換為Object json的本質就是Object //不過用eval會有安全性問題...可以用json.org提供的js去parse //這邊會用eval是因為方便 而且我確定我的json不會有安全性問題 callback(jsonObj); } if (xmlHttp.readyState == 4) return; xmlHttp.send(data); //到這邊 請求才會送出去 } function createXMLHTTPObject() { var XMLHttpFactories = [ function () {return new XMLHttpRequest()}, function () {return new ActiveXObject("Msxml2.XMLHTTP")}, function () {return new ActiveXObject("Msxml3.XMLHTTP")}, function () {return new ActiveXObject("Microsoft.XMLHTTP")}, ]; var xmlhttp = false; for (var i = 0; i < XMLHttpFactories.length; i ++ ) { try { xmlhttp = XMLHttpFactories[i](); } catch (e) { continue; } break; } return xmlhttp; } request('1.json', function (response) { //剛剛就說過了 json的本質就是Object(其實也可以是array 不過對js而言 //array也是Object) 所以把json當Object處理 document.write('uFlag = ' + response.uFlag + '<br>'); document.write('message = ' + response.message); }); -- (‵ˍ′) 「xxx,你看!哥哥要生氣了喔!你在不安靜的話,我就叫他來把你打死!」 -------------鴉雀無聲-------------- 15 minutes later... (′╰╯‵) 「你看,那個哥哥現在的臉多慈祥」 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.87.195 ※ 編輯: s25g5d4 來自: 218.172.87.195 (09/03 22:48) ※ 編輯: s25g5d4 來自: 218.172.87.195 (09/03 22:48) ※ 編輯: s25g5d4 來自: 218.172.87.195 (09/03 22:51)
1F:→ s25g5d4:還有陣列的玩法沒說到...不過太複雜的資料我傾向用XML 09/03 22:56
2F:→ s25g5d4:但是json確實在解析上非常的簡單 09/03 22:56
3F:→ s25g5d4:但是說到易讀易改還是XML勝出XDDD 09/03 22:56
4F:→ grence:我覺得 json樂勝,xml大又難parse; jsonp也是跨網域首選囧a 09/03 23:57
5F:→ s25g5d4:這樣寫下來確實有覺得json很好解析 囧~ 09/04 00:02
6F:→ s25g5d4:而且json做好縮排也是易懂...xml臭了嗎XD 09/04 00:03
7F:→ TonyQ:話說 jsonp 需要遠端server support , 這個可以拿出來討論 09/04 00:14
8F:→ TonyQ:對 jsonp 印象最深刻的它必須要給 callback value 09/04 00:14
9F:→ s25g5d4:T大上幾點的阿...我要去睡了 T大幫忙修程式碼@@" 09/04 00:15
10F:推 SHANGOYANYI:跨網域要遠端support才撈的到東西 其實是合理 09/04 00:36
11F:→ TonyQ:是啊 其實它也只是模擬 var xxxx ={} 的行為而已 09/04 00:41
12F:→ TonyQ:不過 jsonp 其實也不是個非常正式的標準,只是規格戰的一環 09/04 00:42
13F:推 tomin:好漂亮的彩色碼呀 你是苦功上色 還是只是複製貼上? 09/04 00:58
14F:→ Kelunyang:eval不是很安全,去下載json提供的js吧! 09/04 17:34
15F:→ s25g5d4:不漂亮阿 我還改了三次= = 手工上的 09/04 20:14
16F:→ s25g5d4:eval是不安全 可是我遇設立場是json是自己弄得 不會有問題 09/04 20:15
17F:→ s25g5d4:恩...每次看總是會找到漏上色的地方 09/04 20:17
※ 編輯: s25g5d4 來自: 220.142.81.195 (09/04 20:20)
18F:→ s25g5d4:話說 談json能釣到比較多的人 xml都沒人要推 09/04 20:21
19F:→ s25g5d4:其實 我只有提到obj的用法 還有陣列的用法阿>\\< 09/06 00:45
20F:推 othree:記得用 json2.js 09/06 13:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP