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

資訊專欄INFORMATION COLUMN

JSONP是什么

ormsf / 1739人閱讀

摘要:跨域服務(wù)器文件代碼本地得到航班信息查詢結(jié)果后的回調(diào)函數(shù)你查詢的航班結(jié)果是票價(jià)元,余票張。三那么服務(wù)器到底做了什么呢說(shuō)到底,就是拼接字符串。數(shù)據(jù)接收函數(shù)名稱輸出四與的區(qū)別是什么和本質(zhì)上是不同的東西。

一、JSONP的誕生

首先,因?yàn)?strong>ajax無(wú)法跨域,然后開(kāi)發(fā)者就有所思考

其次,開(kāi)發(fā)者發(fā)現(xiàn),

這邊做的就是直接引入一個(gè)js,頁(yè)面將會(huì)彈出一個(gè)提示窗體,顯示 我是遠(yuǎn)程文件

【栗子二】
跨域服務(wù)器
文件:remote.js
代碼:

localHandler({"result":"我是遠(yuǎn)程js帶來(lái)的數(shù)據(jù)"});

本地

 

這邊做的是
1、本地定義一個(gè)函數(shù)
2、引入一個(gè)js
3、被引入的js里面,調(diào)用這個(gè)函數(shù)

頁(yè)面將會(huì)彈出一個(gè)提示窗體。顯示本地函數(shù)被跨域的遠(yuǎn)程js調(diào)用成功,并且還接收到了 我是遠(yuǎn)程js帶來(lái)的數(shù)據(jù)

新問(wèn)題出現(xiàn)了:讓遠(yuǎn)程js知道它應(yīng)該調(diào)用的本地函數(shù)叫什么名字呢?畢竟是jsonp的服務(wù)者都要面對(duì)很多服務(wù)對(duì)象,而這些服務(wù)對(duì)象各自的本地函數(shù)都不相同啊?

【栗子三】
跨域服務(wù)端提供的js腳本動(dòng)態(tài)生成,這樣調(diào)用者可以傳一個(gè)參數(shù)過(guò)去告訴跨域服務(wù)端“我想要一段調(diào)用XXX函數(shù)的js代碼,請(qǐng)你返回給我”,于是跨域服務(wù)器就可以按照客戶端的需求來(lái)生成js腳本并響應(yīng)了。

跨域服務(wù)器
文件:flightResult.php
代碼:

flightHandler({
    "code":"CA1998",
    "price": 1780,
    "tickets": 5
});

本地


這次我們做的是
1、動(dòng)態(tài)創(chuàng)建腳本
2、url中傳遞了一個(gè)code參數(shù),服務(wù)器去做查詢CA1998次航班的信息,callback參數(shù)告訴服務(wù)器,我的本地回調(diào)函數(shù)叫做flightHandler
3、跨域服務(wù)端調(diào)用這個(gè)函數(shù)flightHandler 頁(yè)面將會(huì)彈出一個(gè)提示窗體。把票價(jià)、余票以及張數(shù)給傳遞回來(lái)了。

三、那么服務(wù)器到底做了什么呢? 說(shuō)到底,就是拼接字符串。

// 數(shù)據(jù)
$data = [
    "name":"anonymous66",
    "age":"18",
    "like":"jianshu"
];
// 接收callback函數(shù)名稱
$callback = $_GET["callback"];
// 輸出
echo $callback . "(" . json_encode($data) . ")";

四、與AJAX的區(qū)別是什么?
ajax和jsonp本質(zhì)上是不同的東西。
ajax的核心是通過(guò)XmlHttpRequest獲取非本頁(yè)內(nèi)容
jsonp的核心則是動(dòng)態(tài)添加

閱讀需要支付1元查看
<