JSON和JSONP都是在web應用程序中常用的數據類型。JSON是JavaScript對象表示法的縮寫,是一種輕量級的數據交換格式。它被廣泛用于web應用程序和API中。JSON格式的數據非常便于JavaScript解析,而且可以用于跨語言的數據交換。
JSON數據格式的示例: { "name": "張三", "age": 30, "gender": "男", "address": { "city": "北京", "province": "北京" }, "hobbies": ["籃球", "游泳", "旅游"] }
JSONP是JSON with Padding的縮寫,它是一種利用JSON格式來實現跨域數據訪問的技術。由于同源策略的限制,一般情況下JavaScript無法通過XHR對象訪問不同域名的數據。而JSONP利用script標簽的src屬性不受同源策略限制的特性,通過動態創建script標簽來加載跨域的JSON數據。JSONP的原理就是將JSON數據作為參數傳遞給一個函數,在服務器端將JSON數據包裝成JavaScript函數調用并返回。這樣頁面就可以在本地使用JSON數據了。
JSONP請求的示例: function callback(data) { // 在這里處理返回數據 } var script = document.createElement('script'); script.src = 'http://example.com/jsonp?callback=callback'; document.body.appendChild(script);
由于JSONP是使用script標簽加載數據,所以在使用JSONP時需要注意一些安全問題。一般情況下使用自己的服務器提供JSONP數據和服務,避免使用一些不可信的第三方提供的JSONP接口。