摘要:是什么說(shuō)實(shí)話,我學(xué)了這么久,其實(shí)也沒(méi)有好好了解這個(gè)東西,當(dāng)然平常自己在前端方面也涉獵較淺。是什么是的一種使用模式,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問(wèn)的問(wèn)題。有效避免了直接向遠(yuǎn)程服務(wù)器請(qǐng)求數(shù)據(jù)
JSONP 是什么
說(shuō)實(shí)話,我學(xué)了這么久,其實(shí)也沒(méi)有好好了解這個(gè)東西,當(dāng)然平常自己在前端方面也涉獵較淺。
1) jsonp 是什么JSONP(JSON with Padding)是JSON的一種“使用模式”,可用于解決主流瀏覽器的 跨域 數(shù)據(jù)訪問(wèn)的問(wèn)題。
跨域? 由于同源策略的原因,也就是說(shuō)你請(qǐng)求資源時(shí),瀏覽器對(duì)于不是你當(dāng)前域名或者端口號(hào)都相同的地址給與禁止訪問(wèn),不允許你獲取資源
同源策略:
examle.com:8080 與 examle.com:9090 不同源
examle.com:8080 與 examle.com:9090 不同源
a.examle.com 與 examle.com 不同源
2) 如何解決同源策略帶來(lái)的問(wèn)題瀏覽器中對(duì)"); //2) $.ajax({ url : "http://localhost/jsonp/service.php", type: "GET", dataType: "jsonp", jsonp: "jsonp", // 自定義,保證后端能通過(guò)這個(gè)key值獲取函數(shù)名 jsonpCallback: "showdata",//自定義的jsonp回調(diào)函數(shù)名稱 success: function (json) { alert("success"); }, error: function () { alert("fail"); } }) }) -------------------- header("Content-type: application/json"); //獲取回調(diào)函數(shù)名 $jsonp = htmlspecialchars($_REQUEST ["jsonp"]); //json數(shù)據(jù) $json_data = "["customername1","customername2"]"; //輸出jsonp格式的數(shù)據(jù) echo $jsonp . "(" . $json_data . ")"; // 格式進(jìn)行拼接,得到showdata(["customername1","customername2"]); --------------
由此可見(jiàn),其實(shí)就是遠(yuǎn)程服務(wù)器代前端處理了相關(guān)函數(shù),通過(guò)返回一個(gè)帶參數(shù)的函數(shù)表達(dá)式,來(lái)進(jìn)行執(zhí)行相關(guān)邏輯代碼。 有效避免了直接向遠(yuǎn)程服務(wù)器請(qǐng)求數(shù)據(jù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98415.html
摘要:是什么說(shuō)實(shí)話,我學(xué)了這么久,其實(shí)也沒(méi)有好好了解這個(gè)東西,當(dāng)然平常自己在前端方面也涉獵較淺。是什么是的一種使用模式,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問(wèn)的問(wèn)題。有效避免了直接向遠(yuǎn)程服務(wù)器請(qǐng)求數(shù)據(jù) JSONP 是什么 說(shuō)實(shí)話,我學(xué)了這么久,其實(shí)也沒(méi)有好好了解這個(gè)東西,當(dāng)然平常自己在前端方面也涉獵較淺。 1) jsonp 是什么 JSONP(JSON with Padding)是JSON的一...
摘要:因?yàn)橥床呗缘南拗疲覀儾荒茉谂c外部服務(wù)器進(jìn)行通信的時(shí)候使用。這個(gè)是跨域服務(wù)器取數(shù)據(jù)的接口,參數(shù)為回調(diào)函數(shù)的名字,返回的格式為原理首先在客戶端注冊(cè)一個(gè)然后把的名字傳給服務(wù)器。 一、同源策略 同源策略,它是由Netscape提出的一個(gè)著名的安全策略,現(xiàn)在所有的可支持javascript的瀏覽器都會(huì)使用這個(gè)策略。 為什么需要同源策略,這里舉個(gè)例子: 假設(shè)現(xiàn)在沒(méi)有同源策略,會(huì)發(fā)生什么事...
摘要:是一種協(xié)議,為了解決客戶端請(qǐng)求服務(wù)器跨域的問(wèn)題,但是并非是正式的傳輸協(xié)議。結(jié)果明明請(qǐng)求回來(lái)數(shù)據(jù),結(jié)果還是報(bào)錯(cuò)。是一種使用數(shù)據(jù)的方式,返回的不是對(duì)象,是包含對(duì)象的腳本。 1、什么是JSONP 一般來(lái)說(shuō)位于 server1.example.com 的網(wǎng)頁(yè)無(wú)法與不是 server1.example.com的服務(wù)器溝通,而 HTML 的 元素是一個(gè)例外。利用 元素的這個(gè)開(kāi)放策略,網(wǎng)頁(yè)可以得到...
摘要:因?yàn)橛型床呗?,而在?shí)際開(kāi)發(fā)中又常常會(huì)有跨域的需求,早期開(kāi)發(fā)者為了解決跨域問(wèn)題而搞出來(lái)這樣一個(gè)頗為奇怪的東西。安全早期的瀏覽器處于安全層面的考量,制定同源策略,限制了一個(gè)源中加載文本或腳本與來(lái)自其它源中資源的交互方式。 AJAX、JSON、JSONP 在 WEB 開(kāi)發(fā)中,經(jīng)常見(jiàn)到諸如 AJAX、JSON、JSONP 這些名詞。三者看起來(lái)很像,很多同學(xué)尤其是沒(méi)有系統(tǒng)了解過(guò)前端技術(shù)體系的同...
摘要:就這樣被發(fā)明了,利用的屬性不受同源策略的控制,作弊般地巧妙地逃過(guò)了瀏覽器的這一限制。然后,聲明這個(gè)回調(diào)函數(shù)。 這是我在13年初寫(xiě)的文章,當(dāng)時(shí)懵懵懂懂寫(xiě)下了自己對(duì)JSONP的理解。 文章原文 博客 歡迎訂閱 提到JSONP,我當(dāng)時(shí)在網(wǎng)上找了無(wú)數(shù)帖子也沒(méi)有看懂它。那些文章大同小異,都是講到JSONP原理以后就戛然而止,把我們這些初學(xué)者搞得云里霧里。所以,寫(xiě)下這篇文章,希望對(duì)大家有幫助...
閱讀 1356·2021-11-24 09:38
閱讀 3291·2021-11-22 12:03
閱讀 4265·2021-11-11 10:59
閱讀 2372·2021-09-28 09:36
閱讀 1064·2021-09-09 09:32
閱讀 3488·2021-08-05 10:00
閱讀 2573·2021-07-23 15:30
閱讀 3020·2019-08-30 13:12