什么是跨域呢?
比如說ajax必須在自己的域(名)之下,才能進(jìn)行異步的請求,如果不是在同一個域之下就不能進(jìn)行請求,會報錯。比如說我們用ajax去請求騰訊的API如果我們的這個域不在騰訊那個接口的'白名單'里面,騰訊的接口就會拒絕給我返回數(shù)據(jù)。但是大多數(shù)情況下,我們不可能每次都去去相應(yīng)的網(wǎng)站申請一個'白名單',這個時候我們就要用到跨域這種方法,跨域有很多方式比如說用iframe但是這種的可操作性太差了,不能操作frame里面的DOM元素。當(dāng)先最流行的一種的方式是使用jsonp這種方式。
什么是JSONP
jsonp是英文為json with padding的簡稱。簡單地來說jsonp就是script標(biāo)簽,通常的我們把script,link,img叫做資源標(biāo)簽,也就是能連接資源的意思。只要記住了jsonp就是script標(biāo)簽就好了。下面我們來說下一部分:
script標(biāo)簽怎么引入數(shù)據(jù)
我們?nèi)绻啦僮飨到y(tǒng)并不是靠后綴名來識別一個文件的,是靠文件里面的內(nèi)容來識別的,后綴名知識更利于第三方的軟件進(jìn)行查看。比如說我們把a(bǔ).txt改為a.png那么我門用圖片查看器打開的時候也是顯示的圖片不存在的(如果學(xué)過Linux的同學(xué)會更好的理解)。【有興趣的同學(xué)可以嘗試這把一個js文件的后綴改為其他格式再引入試試】。那么我們就解決的script如何引入數(shù)據(jù)的問題了,也就是說我們可以用script標(biāo)簽引用一個json或者.php的資源文件.
就算能引入資源,那么資源怎么使用呢
先舉個簡單地例子,比如我們在一個a.json定義了下面的一個變量
"text";