成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JSONP解析--可運(yùn)行的代碼

qujian / 1967人閱讀

摘要:考慮到安全問題,一個(gè)域名的只能發(fā)起對自己的域名的請求,否則就是跨站的,這是不被允許的。有人因此出,利用這一個(gè)特點(diǎn)即可發(fā)起跨站的腳本請求,并傳遞跨站數(shù)據(jù)給客戶端。此時(shí),站返回的數(shù)據(jù)已經(jīng)成功的傳遞給了站的客戶端。

考慮到安全問題,一個(gè)域名的js只能發(fā)起對自己的域名的請求,否則就是跨站的,這是不被允許的。但是,標(biāo)簽script內(nèi)加載的腳本是不受此限制的。有人因此hack出JSONP,利用這一個(gè)特點(diǎn)即可發(fā)起跨站的腳本請求,并傳遞跨站數(shù)據(jù)給客戶端。本文對此技術(shù)驗(yàn)證。

我們會(huì)創(chuàng)建兩個(gè)node服務(wù),分別為8081、8082兩個(gè)端口,扮演當(dāng)前站點(diǎn)和跨域站點(diǎn)。假設(shè)我從服務(wù)器A加載一個(gè)HTML文件,文件內(nèi)通過腳本標(biāo)簽發(fā)起對跨域站點(diǎn)B的請求。B站希望返回?cái)?shù)據(jù){msg:1}給A站的客戶端。

A站點(diǎn)。服務(wù)器文件home.js,提供靜態(tài)首頁服務(wù)
    var express = require("express");
    var app = express();
    var path = require("path")
    var public = path.join(__dirname, "public")
    app.use("/",express.static(public))
    var server = app.listen(8081, function () {
      console.log("home site started ")
    })
    
B站點(diǎn)。提供JSONP服務(wù)。文件名為:cors.js
    var express = require("express");
    var app = express();
    app.get("/jsonp/:callback",function (req, res) { 
      var callback = req.params.callback
      console.log(callback)
      res.end(callback+"({msg:1})");
    })
    var server = app.listen(8082, function () {
      console.log("CORS Server started")
    })
其首頁index.html:
  

啟動(dòng)服務(wù)器
   node home.js
   node cors.js

訪問localhost:81,看到一個(gè)對話框顯示1。此時(shí),B站返回的數(shù)據(jù)已經(jīng)成功的傳遞給了A站的客戶端。

完成。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/91327.html

相關(guān)文章

  • AJAX學(xué)習(xí)筆記 - 通訊格式

    摘要:本文章記錄本人在深入學(xué)習(xí)中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復(fù)習(xí)。格式數(shù)據(jù)極其的冗長。但是使用格式還是可能比實(shí)際的數(shù)據(jù)占用更多的空間。該字符串通過或者轉(zhuǎn)換為一個(gè)本地的對象。 本文章記錄本人在深入學(xué)習(xí)Javascirpt AJAX中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復(fù)習(xí)。 避免使用 XML 沒有哪種格式從始至終比其他格...

    番茄西紅柿 評論0 收藏0
  • 關(guān)于ajax,json以及jsonp

    摘要:中間部分由或多個(gè)以,分隔的關(guān)鍵字值對構(gòu)成,關(guān)鍵字字符串和值之間以分隔數(shù)組結(jié)構(gòu)以開始,結(jié)束。 Q:AJAX以何種格式來交換數(shù)據(jù)?跨域的需求如何解決? A:用JSON來傳數(shù)據(jù),靠JSONP來跨域(具體參見下文) AJAX 創(chuàng)建對象 AJAX = Asynchronous(英[e??s??kr?n?s]) JavaScript and XML(異步的 JavaScript 和 XML)。...

    alighters 評論0 收藏0
  • 利用Jsonp實(shí)現(xiàn)跨域請求,spring MVC+JQuery

    摘要:慣例上瀏覽器提供回調(diào)函數(shù)的名稱當(dāng)作送至服務(wù)器的請求中命名查詢參數(shù)的一部分,例如服務(wù)器會(huì)在傳給瀏覽器前將數(shù)據(jù)填充到回調(diào)函數(shù)中。 1 什么是Jsonp? JSONP(JSON with Padding)是數(shù)據(jù)格式JSON的一種使用模式,可以讓網(wǎng)頁從別的網(wǎng)域要數(shù)據(jù)。另一個(gè)解決這個(gè)問題的新方法是跨來源資源共享。 由于同源策略,一般來說位于www.42du.cn的網(wǎng)頁無法與不是 www.42du...

    xiangzhihong 評論0 收藏0
  • PHP筆試面試題精選(一)

    摘要:,跨站腳本攻擊。實(shí)際發(fā)的請求就是,用于表示這是一個(gè)請求。,用于告知服務(wù)器根據(jù)這個(gè)參數(shù)獲取回調(diào)函數(shù)的名稱,通常約定就叫。,回調(diào)函數(shù)的名稱,也是前面參數(shù)的值,可省略,會(huì)自動(dòng)生成。 本次課程主要圍繞 PHP 面試和筆試中經(jīng)常會(huì)出現(xiàn)的一些知識點(diǎn),但是面試官會(huì)在筆試題基礎(chǔ)上深入擴(kuò)展,那么你知道如何更好的回答讓面試官滿意嗎?題目收集自騰訊,迅雷,美圖等公司的筆試面試題,以及本人面試經(jīng)歷中印象中的知...

    JohnLui 評論0 收藏0
  • 關(guān)于javascript跨域及JSONP原理與應(yīng)用

    摘要:因?yàn)橥床呗缘南拗疲覀儾荒茉谂c外部服務(wù)器進(jìn)行通信的時(shí)候使用。這個(gè)是跨域服務(wù)器取數(shù)據(jù)的接口,參數(shù)為回調(diào)函數(shù)的名字,返回的格式為原理首先在客戶端注冊一個(gè)然后把的名字傳給服務(wù)器。 一、同源策略 同源策略,它是由Netscape提出的一個(gè)著名的安全策略,現(xiàn)在所有的可支持javascript的瀏覽器都會(huì)使用這個(gè)策略。 為什么需要同源策略,這里舉個(gè)例子: 假設(shè)現(xiàn)在沒有同源策略,會(huì)發(fā)生什么事...

    CoderBear 評論0 收藏0

發(fā)表評論

0條評論

qujian

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<