如何用json 與jsonp 的區別去回答你的面試官?
阿新 • • 發佈:2018-07-15
交互 運用 訪問 數據 瀏覽器 應用 var 成了 都是
"sex":"男",
"age":19
}]
常常 有面試官這樣問我們,雖然用過無數次,但是回答不上豈不是尷尬,那我們淺析一下它們的區別?
1. json
JSON是一種基於文本的數據交換格式,用於描述復雜的數據,舉個例子:
var nax=[
{
"id":"001",
"sex":"男",
"age":20
},
{
"id":"002",
"sex":"女",
"age":21
},
{
"id":"003",
"age":19
}]
console.log(nax[0].id); //001
console.log(nax[1].sex); //女
JSON其實應用得很廣泛,不難理解,但是JSONP就很容易被誤解了, 以為跟JSON一樣,實際上是兩個不同的東西
2. jsonp
JSONP就是一個跨域交互協議,可以理解為,JSONP約定了JSON的這個數據怎樣進行傳遞。
跨域是指從一個域名去請求另一個域名的資源
,我們知道,如果直接用AJAX請求的時候,由於瀏覽器同源策略的存在,很容易產生跨域問題,同源策略是指域名、協議、端口均相同,如果不同則視為跨域請求,跨域請求一律都是不行的。
想要跨域請求資源,除非我們運用js的特性:script標簽中的鏈接可以訪問跨域的js文件,於是跨域服務器可以這樣做,它把客戶端需要的數據動態包裝成js文件然後提供給客戶端請求。這種數據傳遞方式慢慢就形成了一種傳輸協議,這就是JSONP了
。
如何用json 與jsonp 的區別去回答你的面試官?