位置: 编程技术 - 正文

借助node实战JSONP跨域实例(如何使用nodejs)

编辑:rootadmin

推荐整理分享借助node实战JSONP跨域实例(如何使用nodejs),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:怎么用node.js写接口,用nodejs写接口优缺点,node jsonp,node js import,node json,node json,用nodejs写接口优缺点,node json,内容如对您有帮助,希望把文章链接给更多的朋友!

一、前言:

浏览器安全是基于同源策略的。所谓同源策略就是三相同:

1、协议相同;

2、域名相同;

3、端口相同。

但,凡事都是有利弊,同源策略也导致了我们想用AJAX跨域请求,但NO!!为了规避这种限制,其中有一方法就是JSONP。

JSONP的基本思想:就是通过<script>的src,向服务器请求数据,且这不受同源策略限制(img和iframe的src也是如此);然后服务器将相应的数据放入指定的函数回调名中,返回给前端。

这,就实现了跨域请求信息。

如下图所示:

了解了JSONP的大体思路,接下来,我们借助node来搭建一个简单的服务器,与前端一步步实现JSONP带来的跨域请求之旅吧。

二、搭建node server:

因为前端要实现跨域请求,需要与后台配合。在这里,我们使用是node来模拟后台服务器。

So,你得对node有一定认识以及开发环境。

接下来,我们就编写一个简单的node服务器吧。

首先,我们需要引入http模块,因为是基于http请求的嘛。然后就是用其创建一个http服务器,如监听的是端口。

借助node实战JSONP跨域实例(如何使用nodejs)

如下:

接着,因为我们要对使用JSONP的请求与正常请求区分,所以,后台得判断处理—通过解析url字符串,假设这里我们是通过带有'/jsonp'的路径名来判断。

如下:

在上面的代码中行,有个缺点就是,我们将回调函数的名字规定死了,当我们判断请求为JSONP时,只能往前端传入test,这样显然不合理。

所以,我们得借助于querystring 这个模块,来处理query字符串。

如下:

这样,我们就将一个我们需要的服务器搭建好了。

服务器有了,接下来,就是前端跨域请求了。

三、JSONP跨域请求之旅:

因为我们是借助于<script>标签中的src来实现请求的,在服务器中已经约定,在请求后加入'/jsonp&#;callback',就将其认定为JSONP请求,且callback后带入一个js中已有的全局方法。

所以,代码可以如下:

好了,前后端都编码完毕,接下来,我们就看看效果吧。

首先启动node服务器,如下:

注:我将我们搭建的服务器server.js放在D:/JSONP中

接下来,运行上面所写的html代码,可以发现请求成功,并执行test方法。

但,我们一进来,就得跨域请求,是否有点不妥,所以可以动态创建script元素,并指定相应请求,任由我们所为。

如下:

JSONP还需要注意的就是,回调函数的方法必须是全局的,不然会报错的,因为是通过script的src请求的嘛,请求成功后立即执行。

标签: 如何使用nodejs

本文链接地址:https://www.jiuchutong.com/biancheng/377907.html 转载请保留说明!

上一篇:node.js程序作为服务并在windows下开机自启动(用forever)(node js作用)

下一篇:教你快速搭建Node.Js服务器的方法教程(搭建oj)

  • 车船税征收标准表
  • 个税什么会计科目
  • 无息借款账务处理
  • 已经认证的发票可以作废吗
  • 开具16个点发票情况说明
  • 车船税应该计入什么费用
  • 公司给的出差津贴
  • 租赁合同印花税率
  • 善意接受虚开发票只能自认倒霉么
  • 餐饮行业打折部门是什么
  • 准予抵扣的消费税
  • 计提贷款损失准备金遵循以下原则
  • 事业单位非税收入包括哪些
  • 专用发票地址写错字了能用吗
  • 分公司用总公司盖章说明
  • 信息服务费发票范围
  • 每股收益怎么计算净利润
  • windows10如何更换桌面壁纸
  • 使用u盘安装linux
  • 个税是什么意思必须交吗
  • 系统托盘右键
  • php 实例
  • laccadive islands
  • 混合成本的分解方法很多,通常有
  • 二手房转让中转什么意思
  • 装修费用如何做分录
  • 结转代销成本
  • php快速推送微信内容
  • php 解析
  • 应用加载慢
  • 购买电子承兑差额是多少
  • 车辆转让后的责任谁承担
  • 交易性金融资产的账务处理
  • 购买火车票报销,实际没乘车能查到嘛
  • 公司员工兼职开公司
  • 进项税额转出和红字冲销区别
  • 社会保险中断后还可以续保吗
  • 企业内部罚没收入违法吗
  • 长期借款计提的利息可能借记
  • 销售固定资产如何申报企业所得税
  • 非现金资产抵偿债务
  • 办理股权转让需要多久时间
  • 顺风车没有发票是否合法
  • 营业外收入核算的内容有
  • 个人账号可以向对公账户转账吗
  • 加油票怎么做会计分录
  • 餐饮食材成本高怎么形容
  • 企业网银的电子对账未签约需要本人去吗
  • 应付账款核算的项目
  • sqlserver数据库迁移至mysql
  • mysql 含有关键字
  • 关闭默认共享的影响
  • win2008组策略
  • 使用u盘安装windows10电脑识别不出来
  • 如何查看电脑端口号
  • vs2013运行
  • 重装系统开机出现几个系统
  • regloadr.exe - regloadr是什么进程 有什么用
  • gacrunner.exe是什么
  • win7升级win8.1失败
  • linux中rename命令详解
  • iredmail是免费的吗
  • CSS锦囊
  • java gravity
  • 浏览器兼容的方法
  • jquery内容
  • 用javascript
  • JavaScript实现99乘法表及隔行变色实例代码
  • shell脚本定时任务怎么写
  • android开发吧
  • 异步promise原理
  • JavaScript中定义数组
  • android 内部存储
  • 济南税务局投诉电话
  • 安徽省地方税务局公告2016年第1号
  • 企业年度总收入指的是什么意思
  • 地税局有实权吗
  • 国家税务总局可以设定行政处罚吗
  • 汽车票换票需要手续费吗
  • 临沂市2020年居民燃气价格
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设