国产探花免费观看_亚洲丰满少妇自慰呻吟_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詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康定县| 靖宇县| 友谊县| 潮州市| 故城县| 池州市| 盐津县| 朔州市| 乐至县| 双流县| 大城县| 荔波县| 苏尼特右旗| 农安县| 东乡| 乌拉特前旗| 崇义县| 吐鲁番市| 高阳县| 兴隆县| 郸城县| 酉阳| 瑞丽市| 光泽县| 阿拉善右旗| 措美县| 原平市| 新乡县| 丰顺县| 宁强县| 河北省| 许昌市| 荆州市| 哈尔滨市| 东阿县| 昌图县| 平原县| 扶沟县| 丹阳市| 丹凤县| 尖扎县|