最近在學(xué)js 有幸聽了海牙老師的直播講課 所以在這里整理一下Ajax的POST請(qǐng)求和GET請(qǐng)求
我先說一下ajax
是什么
Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML)吼砂,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)逗堵。
Ajax = 異步 JavaScript 和 XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)题诵。
Ajax 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)桩卵。
Ajax 是一種在無需重新加載整個(gè)網(wǎng)頁的情況下馋艺,能夠更新部分網(wǎng)頁的技術(shù)题暖。[1]
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換匀谣,Ajax 可以使網(wǎng)頁實(shí)現(xiàn)異步更新停做。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下钳踊,對(duì)網(wǎng)頁的某部分進(jìn)行更新衷敌。
傳統(tǒng)的網(wǎng)頁(不使用 Ajax)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁頁面拓瞪。摘自 百度百科 = =
如果上面都沒看懂沒關(guān)系 我用一句話總結(jié)
就他丫的是個(gè)用js寫的網(wǎng)絡(luò)請(qǐng)求
好了廢話不多說了直接上代碼
- 下面是GET方法
var URL = 'https://route.showapi.com/181-1';
// 初始化實(shí)例
var request = new XMLHttpRequest();
// 構(gòu)造參數(shù)
var sendData = {
showapi_appid: '30603',
showapi_sign: '98960666afeb4992ae91971d13494090',
page: 1,
num: '8'
}
// 拼接參數(shù)構(gòu)造URL
URL = URL + '?showapi_appid=' + sendData.showapi_appid + "&showapi_sign=" + sendData.showapi_sign + "&page=" + sendData.page + "&num=" + sendData.num;
// 構(gòu)造請(qǐng)求 請(qǐng)求類型 URL 是否異步 true異步 false同步
request.open('GET', URL, true);
// 發(fā)送請(qǐng)求
request.send(null);
//設(shè)置異步回調(diào)
request.onreadystatechange = function (ev) {
switch (request.readyState) {
case 0:
console.log(new Date() + ' : ' + '未初始化 - 還沒有調(diào)用send方法');
case 1:
console.log(new Date() + ' : ' + '正在發(fā)送請(qǐng)求' + 'time:');
case 2:
console.log(new Date() + ' : ' + '已經(jīng)接收到全部響應(yīng)內(nèi)容' + 'time:');
case 4:
console.log(new Date() + ' : ' + '響應(yīng)內(nèi)容解析完成, 可以在客戶端使用了' + 'time:');
}
//網(wǎng)絡(luò)請(qǐng)求成功 打印數(shù)據(jù)
if (request.readyState == 4 && request.status == 200) {
// 打印json字符串
document.write(request.response);
// json字符串轉(zhuǎn)對(duì)象
let responseObject = JSON.parse(request.response);
// 打印json對(duì)象
console.log(responseObject);
// 打印json里面的層級(jí)用點(diǎn)(.)來訪問
console.log(responseObject.showapi_res_body.newslist);
}
}
- 下面是POST方法 下面是我抓取微信游戲的接口 = =
var URL = 'https://game.weixin.qq.com' + '/cgi-bin/gametetrisws/syncgame?session_id=xxxx';
// 初始化實(shí)例
var request = new XMLHttpRequest();
//構(gòu)造POST請(qǐng)求正文數(shù)據(jù)
var json = '{"appid":"xxxx","game_behav_list":[{"key":"newscore","value":0},{"key":"level","value":100},{"key":"baoshi","value":0},{"key":"combo","value":0}],"sync_type":1,"sig":23026853,"use_time":3}';
// 構(gòu)造請(qǐng)求 請(qǐng)求類型 URL 是否異步 true異步 false同步
request.open('POST', URL, true);
// 發(fā)送請(qǐng)求
// request.send(JSON.stringify(sendData));
request.send(json);
//設(shè)置異步回調(diào)
request.onreadystatechange = function (ev) {
switch (request.readyState) {
case 0:
console.log(new Date() + ' : ' + '未初始化 - 還沒有調(diào)用send方法');
case 1:
console.log(new Date() + ' : ' + '正在發(fā)送請(qǐng)求' + 'time:');
case 2:
console.log(new Date() + ' : ' + '已經(jīng)接收到全部響應(yīng)內(nèi)容' + 'time:');
case 4:
console.log(new Date() + ' : ' + '響應(yīng)內(nèi)容解析完成, 可以在客戶端使用了' + 'time:');
}
//網(wǎng)絡(luò)請(qǐng)求成功 打印數(shù)據(jù)
if (request.readyState == 4 && request.status == 200) {
// 打印json字符串
document.write(request.response);
// json字符串轉(zhuǎn)對(duì)象
let responseObject = JSON.parse(request.response);
// 打印json對(duì)象
console.log(responseObject);
}
}