[心得] 這次換json...只是簡單的教學
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)
→
09/03 22:56, , 1F
09/03 22:56, 1F
→
09/03 22:56, , 2F
09/03 22:56, 2F
→
09/03 22:56, , 3F
09/03 22:56, 3F
→
09/03 23:57, , 4F
09/03 23:57, 4F
→
09/04 00:02, , 5F
09/04 00:02, 5F
→
09/04 00:03, , 6F
09/04 00:03, 6F
→
09/04 00:14, , 7F
09/04 00:14, 7F
→
09/04 00:14, , 8F
09/04 00:14, 8F
→
09/04 00:15, , 9F
09/04 00:15, 9F
推
09/04 00:36, , 10F
09/04 00:36, 10F
→
09/04 00:41, , 11F
09/04 00:41, 11F
→
09/04 00:42, , 12F
09/04 00:42, 12F
推
09/04 00:58, , 13F
09/04 00:58, 13F
→
09/04 17:34, , 14F
09/04 17:34, 14F
→
09/04 20:14, , 15F
09/04 20:14, 15F
→
09/04 20:15, , 16F
09/04 20:15, 16F
→
09/04 20:17, , 17F
09/04 20:17, 17F
※ 編輯: s25g5d4 來自: 220.142.81.195 (09/04 20:20)
→
09/04 20:21, , 18F
09/04 20:21, 18F
→
09/06 00:45, , 19F
09/06 00:45, 19F
推
09/06 13:44, , 20F
09/06 13:44, 20F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):