国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js返回JSONP詳解

2019-11-20 10:00:38
字體:
來源:轉載
供稿:網友

在使用JQuery的Ajax從服務器請求數據或者向服務器發送數據時常常會遇到跨域無法請求的錯誤,常用的解決辦法就是在Ajax中使用JSONP。基于安全性考慮,瀏覽器會存在同源策略,然而<script/>標簽卻具有跨域訪問數據的能力,這就是JSONP工作的基本原理。有關同源策略以及什么是JSONP。

在Node.js中實現JSONP非常簡單,通過下面的代碼我們從服務器返回并運行一個JavaScript函數,這個JavaScript函數已經在調用方提前被定義好了,于是當它被返回的時候就自動執行了。

var express = require('express');var router = express.Router();router.get('/getinfo', function(req, res, next) { var _callback = req.query.callback; var _data = { email: 'example@163.com', name: 'jaxu' }; if (_callback){   res.type('text/javascript');   res.send(_callback + '(' + JSON.stringify(_data) + ')'); } else{   res.json(_data); }});module.exports = router;

代碼中必須規定從服務器返回數據的類型,代碼res.type('text/javascript')被加在返回的數據之前用于告訴瀏覽器這是一段JavaScript代碼。

前端頁面通過JQuery調用:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>jsonp test</title>  <script src="/bower_components/jquery/dist/jquery.js"></script></head><body>  <input type="button" value="click" id="btn">  <script type="text/javascript">    $(function(){      $('#btn').on('click', function(){        $.get('http://anothersite/api/getinfo', function(d){          console.log(d);        }, 'jsonp');      });    });  </script></body></html>

運行代碼,點擊按鈕,在瀏覽器的console面板總我們可以看到從遠程服務器返回的json對象。

以上這篇Node.js返回JSONP詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台东市| 苏尼特右旗| 南宁市| 上高县| 福泉市| 柯坪县| 民和| 夏河县| 东阿县| 什邡市| 陕西省| 威海市| 韶山市| 富平县| 黑山县| 大英县| 东乌| 临洮县| 达日县| 岳阳市| 雅安市| 澄城县| 子长县| 伊金霍洛旗| 石柱| 赤壁市| 察哈| 南江县| 义马市| 神池县| 清徐县| 平凉市| 忻州市| 依安县| 应城市| 萨嘎县| 定襄县| 延长县| 蕲春县| 景宁| 嫩江县|