ajax和XMLHttpRequest和xhr【zhihu回答】
轉(zhuǎn)載自
https://www.zhihu.com/question/532267866/answer/2506456679
我挺討厭ajax這個(gè)詞的,因?yàn)樗桓睂?shí)。它的全稱是Asynchronous JavaScript and XML。注意后面那個(gè)XML了嗎?實(shí)際上現(xiàn)在的web開發(fā)交換數(shù)據(jù)都很少用XML了,早就普及JSON
了。甚至有時(shí)候開發(fā)者偷懶,把a(bǔ)jax的請(qǐng)求的async設(shè)置為false,這就更搞笑了,既不XML也不asynchronous。
也許是得益于jQuery當(dāng)年的普及,jQuery附帶的$.ajax,幾乎成了異步請(qǐng)求的代名詞。但這造就了許多jQuery程序員,他們只懂得用$.ajax來發(fā)起請(qǐng)求,不知道$.ajax其實(shí)也是對(duì)別的接口的封裝,看到$.ajax變成Axios就覺得非常困惑。
其實(shí)$.ajax和Axios底層封裝的都是XMLHttpRequest,XMLHttpRequest典型用法:
const xhr = new XMLHttpRequest()
xhr.open('POST', 'http://localhost', true)
xhr.send('test')
xhr.onload = () => {
console.log(xhr.responseText)
}
無論你用$.ajax還是Axios,結(jié)果還是調(diào)用XMLHttpRequest,并無本質(zhì)區(qū)別。

浙公網(wǎng)安備 33010602011771號(hào)