サーバーからのjQueryのAjaxリクエストデータを使用したり、サーバーにデータを送信する場合、多くの場合、エラーが発生し、一般的な解決策は、JSONPリクエストはアヤックスにすることはできませんクロスドメインを使用することです。セキュリティ上の理由から、ブラウザ元ポリシーが存在しますが、<SCRIPT />タグが、ドメイン間でデータにアクセスする能力を持っており、これは基本的な原理JSONP作品です。同一生成元ポリシーと何かJSONPについて、庭はこの記事を参照することができhttp://www.cnblogs.com/yuzhongwusan/archive/2012/12/11/2812849.html
JSONPのNode.jsは非常に簡単です実装では、我々は戻って、次のコードを介してサーバからJavaScript関数を実行し、JavaScript関数は事前に発信者を定義されているので、それが自動的に実行返されたとき。
VaRは発現=(「発現」が必要)。 VARルータ= express.Router(); router.get( '/ GETINFO'、関数(REQ、RES、次){ VAR _callback = req.query.callback; VAR _data = {メール'[email protected]'、名称: 'jaxu' }; もし( _callback){ res.type( 'テキスト/ javascriptの' ); res.send(_callback + '(' + JSON.stringify(_data)+ '')); } 他{ res.json(_data); } })。 module.exportsは =ルータ。
コードは、サーバからのデータの所定の型を返す必要があり、コードres.type(「テキスト/ javascriptの」)が返されたデータは、JavaScriptのコードの一部であるブラウザを伝えるために使用される前に適用されます。
呼び出すことにより、jQueryのフロントページ:
} 'JSONP' )。 }); }); </スクリプト> </ BODY> </ HTML>
もちろん、急行ならば、直接、次のコードを使用することが可能です。
router.get( '/ GETINFO'、関数 (REQ、RES、次){ VAR _data = {メール'[email protected]'、名称: 'jaxu' }; res.type( 'アプリケーション/ JSON' )。 res.jsonp(_data); });