JSONP解析--実行可能なコード

1610 ワード

セキュリティの問題を考慮すると、1つのドメイン名のjsは自分のドメイン名に対する要求を開始するしかありません.そうしないと、駅をまたぐことになります.これは許可されません.ただし、ラベルscriptにロードされるスクリプトはこの制限を受けません.そのため、JSONPをhackして、この特徴を利用してクロスステーションのスクリプト要求を開始し、クロスステーションのデータをクライアントに伝達することができます.本稿では、このテクノロジーを検証します.
現在のサイトとドメイン間サイトを演じる8081、8082の2つのポートのnodeサービスを作成します.サーバAからHTMLファイルをロードし、スクリプトラベルを使用してドメイン間サイトBへのリクエストを開始するとします.B局は、A局のクライアントにデータ{msg:1}を返すことを望んでいる.

Aサイト。サーバファイルjs、静的トップページサービスを提供

    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サイト。JSONPサービスを提供します。ファイル名: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:


  
    function cb(obj)
    {
        alert(obj.msg)
    }




   node home.js
   node cors.js

localhost:81にアクセスすると、ダイアログボックスに1が されます.このとき、B から されたデータはA のクライアントに に された.
します.