說(shuō)完ajax我想必須說(shuō)說(shuō)jsonp了,談到j(luò)sonp就必須先說(shuō)說(shuō)跨域,首先ajax是不能跨域的,除非后臺(tái)允許跨域或者訪問(wèn)統(tǒng)一域名下的php或者后臺(tái)文件路徑,讓后臺(tái)自己去跨域
不知道大家注意研究過(guò)跨域沒有,眾所周知我們?cè)谝雸D片或者iframe又或者js文件時(shí),它是可以直接請(qǐng)求網(wǎng)上的資源用來(lái)本地的,然后jsonp呢其實(shí)按我的理解就像下圖一樣

我的第一個(gè)script標(biāo)簽里面定義了一個(gè)一個(gè)名為ljf的函數(shù),然后動(dòng)態(tài)創(chuàng)建了一個(gè)script標(biāo)簽并且url為我jsonp的請(qǐng)求地址,參數(shù)則為我回調(diào)函數(shù)的名字,而后臺(tái)在接收到這個(gè)信息后,會(huì)將數(shù)據(jù)作為回調(diào)函數(shù)的參數(shù)并且在后臺(tái)生成一個(gè)js文件,而我前端頁(yè)面生成script的路徑正指向后臺(tái)的js文件,就像圖中所示會(huì)將ljf這個(gè)函數(shù)運(yùn)行

這就是一個(gè)很典型的jsonp跨域,網(wǎng)上有好多這種小例子,大家喜歡的可以自行百度,jsonp很簡(jiǎn)單只需要真正精通它的原理那他其實(shí)就不怎么難了,像ajax這種東西是官方提供的,但jsonp這種東西真的就是無(wú)數(shù)程序員總結(jié)出來(lái)的,讓咱們大家一起努力吧
其實(shí)交互的方式還有很多種,jsonp和ajax只是其中的一小部分,比如fetch或者websokect或者form表單等等等等,我只是給大家介紹了常用的倆種,剩下的等我有機(jī)會(huì)再說(shuō)吧