日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

跨域请求之JSONP

發(fā)布時(shí)間:2025/7/14 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跨域请求之JSONP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

跨域懇求的方法有很多種,

1,iframe

2,document.domain

3,window.name

4,script

5,XDomainRequest (IE8+)

6,XMLHTTPRequest (Firefox3.5+)

7,postMessage (HTML5)

8,后臺(tái)代理

...

它們有各自的優(yōu)缺點(diǎn),回來的數(shù)據(jù)格局也各不同,應(yīng)根據(jù)需要慎重挑選。比方iframe回來html片段就對比適合,費(fèi)老勁用它回來JSON就因小失大了。這篇開端我將打造一個(gè)有用的跨域懇求東西Sjax。運(yùn)用script懇求的最大缺點(diǎn),挑戰(zhàn)是過錯(cuò)處理。比方404過錯(cuò),它不象XMLHTTPRequest能精確的回來狀況碼404。我把這個(gè)放在最終一篇。


本系列首要描繪以上列舉的方法4,即通過script回來JSON格局?jǐn)?shù)據(jù)數(shù)據(jù)。這種方法如今稱為JSONP。JSON是目前前后臺(tái)交流運(yùn)用最盛行,也最廣泛的格局之一。相對于前期的AJAX回來XML(AJAX中的X即是XML),JSON顯得更輕量級,沒有剩余的Tag符號(hào),解析也是原生的。XML回來到前端后先轉(zhuǎn)成文檔,通過DOM API一層層的解析。解析DOM是開支對比大的,尤其在前期的IE版別中(IE6/7/8),core js與dom交流的價(jià)值是很大的。


JSONP的實(shí)現(xiàn)思路很簡單

1, 前端創(chuàng)立script符號(hào),設(shè)置src,添加到head中(你可以往body中添加)。

2, 后臺(tái)回來一個(gè)js變量jsonp,這個(gè)jsonp即是懇求后的JSON數(shù)據(jù)。

3, 回調(diào)完成后刪去script符號(hào)(還有一些整理作業(yè)如防止有些瀏覽器內(nèi)存泄露等)。


接口

Sjax.load(

? ? url,// 跨過懇求的URL

? ? success, // 回調(diào)函數(shù),有必要界說一個(gè)形參,用于接納后臺(tái)回來的全局變量jsonp (約好后臺(tái)回來如jsonp = {...}結(jié)構(gòu))

? ? timestamp,// 傳true會(huì)加一個(gè)時(shí)間戳,防止緩存,默許不加

);

? ? <!DOCTYPE HTML>

<html>?

<head>?

? ? <meta charset="utf-8">?

? ? <title>sjax_0.1.js by snandy</title>

? ? <script src="/js/sjax_0.1.js"></script>

</head>?

<body>

<p id="p1" style="background:gold;"></p>

<input type="button" value="Get Name" οnclick="clk()"/>

<script type="text/javascript">

? ? function clk(){

? ? ? ? Sjax.load(

? ? ? ? ? ? 'http://lf.yunnanw.cn/',?

? ? ? ? ? ? 'http://www.lcsyt.com/',?

? ? ? ? ? ? 'http://www.minnan888.net/',?

? ? ? ? ? ? 'http://www.vipfuxin.com/',?

? ? ? ? ? ? 'http://www.qclchina.com/',?

? ? ? ? ? ? 'http://www.tongxinglong.com/',?

? ? ? ? ? ? 'http://www.jinanwuliangye.com/',?

? ? ? ? ? ? '',?

? ? ? ? ? ? function(){

? ? ? ? ? ? ? ? document.getElementById('p1').innerHTML = 'Hi, ' + jsonp.name;

? ? ? ? ? ? }

? ? ? ? ); ? ? ?

? ? }

</script>

</body>

</html>

? ??



轉(zhuǎn)載于:https://blog.51cto.com/8917152/1426950

總結(jié)

以上是生活随笔為你收集整理的跨域请求之JSONP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。