1. 程式人生 > >如何用json 與jsonp 的區別去回答你的面試官?

如何用json 與jsonp 的區別去回答你的面試官?

交互 運用 訪問 數據 瀏覽器 應用 var 成了 都是

常常 有面試官這樣問我們,雖然用過無數次,但是回答不上豈不是尷尬,那我們淺析一下它們的區別?

1. json

JSON是一種基於文本的數據交換格式,用於描述復雜的數據,舉個例子:
var nax=[
{
"id":"001",
"sex":"男",
"age":20
},
{
"id":"002",
"sex":"女",
"age":21
},
{
"id":"003",

"sex":"男",
"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 的區別去回答你的面試官?