摘要:同源策略,它是由提出的一個著名的安全策略,現在所有支持的瀏覽器都會使用這個策略。客戶端在對文件調用成功之后,也就獲得了自己所需的數據,剩下的就是按照自己需求進行處理和展現了,這種獲取遠程數據的方式看起來非常像,但其實并不一樣。
參考資料
一、先說說JSON首先JSON是一種基于文本的數據交換方式,或者叫做數據描述格式。
JSON的優點:
基于純文本,跨平臺傳遞極其簡單;
Javascript原生支持,后臺語言幾乎全部支持;
輕量級數據格式,占用字符數量極少,特別適合互聯網傳遞;
可讀性較強,雖然比不上XML那么一目了然,但在合理的依次縮進之后還是很容易識別的;
容易編寫和解析,當然前提是你要知道數據結構;
二、同源策略一個眾所周知的問題,由于同源策略,Ajax直接請求普通文件存在跨域無權限訪問的問題。
同源策略,它是由Netscape提出的一個著名的安全策略,現在所有支持JavaScript的瀏覽器都會使用這個策略。
但是,Web頁面上調用js文件時則不受是否跨域的影響,不僅如此,凡是擁有”src”屬性的標簽都擁有跨域的能力,比如、、。
因此,如果想通過純web端跨域訪問數據就只有一種方案,那就是在遠程服務器上設法把數據裝進js格式的文件里,供客戶端調用和進一步處理。
三、JSONPJsonp(JSON with Padding) 是 json 的一種"使用模式",可以讓網頁從別的域名(網站)那獲取數據,即跨域讀取數據。
客戶端通過與調用腳本一模一樣的方式,來調用跨域服務器上動態生成的js格式文件(一般以JSON為后綴),顯而易見,服務器之所以要動態生成JSON文件,目的就在于把客戶端需要的數據裝入進去。
客戶端在對JSON文件調用成功之后,也就獲得了自己所需的數據,剩下的就是按照自己需求進行處理和展現了,這種獲取遠程數據的方式看起來非常像AJAX,但其實并不一樣。
為了便于客戶端使用數據,逐漸形成了一種非正式傳輸協議,也就是JSONP,該協議的一個要點就是允許用戶傳遞一個callback參數給服務端,然后服務端返回數據時會將這個callback參數作為函數名來包裹住JSON數據,這樣客戶端就可以隨意定制自己的函數來自動處理返回數據了。
ajax和jsonp本質上是完全不同的東西。ajax的核心是通過XmlHttpRequest獲取非本頁內容,而jsonp的核心則是動態添加