国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為什么是 JSONP

iKcamp / 2828人閱讀

摘要:因為有同源策略,而在實際開發(fā)中又常常會有跨域的需求,早期開發(fā)者為了解決跨域問題而搞出來這樣一個頗為奇怪的東西。安全早期的瀏覽器處于安全層面的考量,制定同源策略,限制了一個源中加載文本或腳本與來自其它源中資源的交互方式。

AJAX、JSON、JSONP

在 WEB 開發(fā)中,經(jīng)常見到諸如 AJAX、JSON、JSONP 這些名詞。三者看起來很像,很多同學尤其是沒有系統(tǒng)了解過前端技術(shù)體系的同學,平常只是借助類似 JQuery 這類庫封裝好的函數(shù)使用而已,并不了解其原理。但這三種東西具體是什么,有什么關系和區(qū)別卻常常說不清楚。

接下來,會簡要介紹一下三者的的含義,重點闡述 JSONP 的來源和原理,以及為什么 JSONP 不是 AJAX。

AJAX (Asynchronous JavaScript + XML)

Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:

standards-based presentation using XHTML and CSS;

dynamic display and interaction using the Document Object Model;

data interchange and manipulation using XML and XSLT;

asynchronous data retrieval using XMLHttpRequest;

and JavaScript binding everything together.

異步 JavaScript + XML,是在 2005 年由 Jesse James Garrett 提出的一個術(shù)語。 AJAX 并非特指某種技術(shù), 描述的是一種結(jié)合使用大量已有技術(shù)的方式, 包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 還有最重要的 XMLHttpRequest 對象.

盡管在 AJAX 中 X 代表 XML, 但現(xiàn)在更多的在使用 JSON,因為 JSON 具有很多優(yōu)勢,比如更輕量并且是 JavaScript 的一部分。在 AJAX 模型中 JSON 和 XML 都用于承載信息.

JSON(Javascript Object Notation)

JSON 是一種輕量級的數(shù)據(jù)交換格式。由道格拉斯·克羅克福特(Douglas Crockford)在 2012 年發(fā)明,并逐漸取代 XML 成為事實上的數(shù)據(jù)交換格式標準。

JSON 基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。但采用完全獨立于語言的文本格式,并使用了類似于 C 語言家族的習慣。

在 JSON 中,一共 6 種數(shù)據(jù)類型:

number:跟 Javascript 的數(shù)值一致,除去未曾使用的八進制與十六進制格式,和一些編碼細節(jié)

boolean:truefalse

string:是由雙引號包圍的任意數(shù)量Unicode字符的集合,使用反斜線轉(zhuǎn)義

null:null

array:數(shù)組是值(value)的有序集合。一個數(shù)組以“[”(左中括號)開始,“]”(右中括號)結(jié)束,值之間使用“,”(逗號)分隔

object:對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束,每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔

以及上面的任意組合。

在 JavaScript 中有一個全局對象 JSON,包含兩個方法 JSON.stringify()JSON.parse(),用于序列化和解析 JSON。

當然也有人使用 eval("(" + string + ")") 代替 JSON.parse() 來 解析JSON,相比而言這種方式的容錯性更高。

JSONP(JSON with Padding)

因為 XMLHttpRequest 有同源策略,而在實際開發(fā)中又常常會有跨域的需求,早期開發(fā)者為了解決跨域問題而搞出來這樣一個頗為奇怪的東西。產(chǎn)生原因和名字一樣古怪,光聽名字恐怕沒幾個人知道說的是個什么東西。

剛好

閱讀需要支付1元查看
<