位置: 编程技术 - 正文

借助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)

  • 补报以前年度收入后当年所得税怎么处理
  • 公司组织旅游的费用要交个税
  • 子公司对母公司的责任
  • 申报个税提前一个月有什么影响
  • 纳税人出租不动产预缴税款
  • 异地存货管理
  • 付了定金一定会有货吗
  • 小规模纳税人开票税率
  • 商品入库时的会计分录
  • 提供应税服务营改增的应税服务不包括什么
  • 用公户付了一笔款怎么办
  • 备品的定义
  • 不交增值税当月还需要计提税金吗?
  • 增值税专用发票验证真伪
  • 开票时税收编码必须和进项一致吗
  • 小规模增值税未开票收入填哪里
  • 资产负债率之比
  • 专用发票不抵扣联可以当普票用吗?
  • 税务要求企业所得税预缴申报更正
  • 开票系统问题
  • 已交税的无票收入后期怎么补开发票?
  • 支付个人利息没有取得发票
  • 重分类不成功
  • 怎么知道一个公众号有多少人关注
  • 法人变更股权不转让有什么影响么么
  • surface安装win10专业版
  • pniopcacexe是什么进程
  • vmware怎么安装iso
  • 新成立股份有限公司股本构成
  • linux系统中文输入法切换不出来
  • Stable Diffusion 准确绘制人物动作及手脚细节(需ControlNet扩展)
  • react组件如何设置dom
  • 农民工的职业培训
  • 国有土地租赁合同规定多少年
  • 银行对账单附在记账凭证中吗
  • 使用小程序实现im
  • input输入框非空验证
  • 三栏式明细账需要每笔结余额吗
  • 计提了年终奖还能冲回吗
  • mysql命令大全手册
  • 详解sql基础语法实验报告
  • sqlserver2008实例配置
  • 零申报公司注销流程
  • 小规模纳税人购买原材料会计分录
  • 去年亏损今年有盈利合伙企业怎么交生产经营所得税
  • 收到社保稳岗补贴转入营业外收入要交企业所得税吧
  • 以前年度少结转成本怎么办
  • 成本结转的凭证后附件是怎样的
  • 报销无法取得发票
  • 税务会计账务处理一般方法有哪些
  • 走逃失联企业管理办法
  • 集团管理费收入是否纳税
  • 印花税征税范围2021
  • SQLserver中cube:多维数据集实例详解
  • Vista技巧:何在Vista上运行不兼容的旧版本软件
  • win2003r2企业版密钥
  • Windows Server 2008下 驾驭拨号上网
  • linux路由是干嘛的
  • 优盘安装系统
  • 如何在win7系统中查看电脑基本信息
  • win7开机显示一堆英文
  • windows8图片
  • win8操作系统如何安装
  • 升级win10系统后安装谷歌打不开
  • javascriptcsdn
  • jquery 属性
  • 使用jQuery的ajax方法向服务器发出get和post请求的方法
  • 安卓图库权限
  • dos命令语法
  • perl ne
  • shell中的-le
  • js按下键盘事件
  • Underscore.js 1.3.3 中文注释翻译说明
  • 前端跑马灯实现
  • 多线程python爬虫
  • 可分割项目
  • 柜台申报税务流程图
  • 怎么样开通深圳医保
  • 票种核定流程审批时间
  • 三证合一怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设