位置: IT常识 - 正文

🎉使用JSONP解决跨域(jsoncpp使用)

编辑:rootadmin
1.首先需要知道什么是跨域 浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域 出于浏览器的同源策略限制 同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同 源策略,则浏览器的正常功能可能都会受到影响 同源策略限制 ... 1.首先需要知道什么是跨域浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域

推荐整理分享🎉使用JSONP解决跨域(jsoncpp使用),希望有所帮助,仅作参考,欢迎阅读内容。

🎉使用JSONP解决跨域(jsoncpp使用)

文章相关热门搜索词:json用法示例理解,如何使用json,json用法,json的使用场景,json的使用场景,json使用教程,如何使用json,json使用教程,内容如对您有帮助,希望把文章链接给更多的朋友!

出于浏览器的同源策略限制

同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同 源策略,则浏览器的正常功能可能都会受到影响同源策略限制内容有:

Cookie、LocalStorage、IndexedDB 等存储性内容DOM 节点AJAX 请求发送后,结果被浏览器拦截了2.什么是JSONPJSONP是JSON with Padding的略称,JSONP为民间提出的一种跨域解决方案,通过客户端的script标签发出的请求方式原理就是通过添加一个<script>标签,向服务器请求JSON数据,这样不受同源政策限制。服务器收到请求后,将数据放在一个callback回调函数中传回来。比如axios。不过只支持GET请求且不安全,可能遇到XSS攻击,不过它的好处是可以向老浏览器或不支持CORS的网站请求数据服务端: 将服务端返回数据封装到指定函数中返回 callback({返回数据})客户端: 不管是我们的script标签的src还是img标签的src,或者说link标签的href他们没有被同源策略所限制,比如我们有可能使用一个网络上的图片,就可以请求得到;所以利用同源策略漏洞,将访问地址放在下面的标签的路径中,<script src="https://www.cnblogs.com/Lucky-daisy/p/www.baidu.com"> 、< img src=""/>、 <link href=""/> 来解决跨域的问题3.JSONP简单实现

node服务器端代码

const express = require('express')const app = express()const port = 3000//路由配置app.get("/user",(req,res)=>{//1.获取客户端发送过来的回调函数的名字let fnName = req.query.callback;//2.得到要通过JSONP形式发送给客户端的数据const data = {name:'tom'}//3.根据前两步得到的数据,拼接出个函数调用的字符串let result = `${fnName}({name:"tom"})`//4.把上步拼接得到的字符串,响应给客户端的<script> 标签进行解析执行res.send(result);})app.listen(port, () => {console.log(`Example app listening on port ${port}`)})

前端代码

<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JSONP简单实现</title></head><body><button id="btn">点击发送请求</button><script>function getJsonpData(data) {console.log("获取数据成功")console.log(data) //{name:'tom'}}var btn = document.getElementById("btn");btn.onclick = function () {//创建script标签var script = document.createElement("script");script.src = 'http://localhost:3000/user?callback=getJsonpData';document.body.appendChild(script);script.onload = function () {document.body.removeChild(script)}}</script></body></html>4.结论优点:

兼容性比较好,可用于解决主流浏览器的跨域数据访问的问题不受到同源策略的限制,在请求完毕后可以通过调用 callback 的方式回传结果缺点:

仅支持get请求;具有局限性,不安全,可能会受到XSS攻击;只支持跨域 HTTP 请求这种情况,不能解决不同域的两个页面之间如何进行 Javascript 调用的问题
本文链接地址:https://www.jiuchutong.com/zhishi/313076.html 转载请保留说明!

上一篇:帝国cms实现会员注册之后根据所在会员组转向的方法(帝国cms会员发布信息数量)

下一篇:python A*算法是什么(python apriori算法)

  • 大数据时代下的邮件群发怎样进行良性循环(大数据时代下的电子政务个人发言提纲)

    大数据时代下的邮件群发怎样进行良性循环(大数据时代下的电子政务个人发言提纲)

  • 华硕怎么切换性能模式(华硕怎么切换系统)

    华硕怎么切换性能模式(华硕怎么切换系统)

  • 惠普2132打印机怎么连接手机打印(惠普2132打印机灯一直闪不打印)

    惠普2132打印机怎么连接手机打印(惠普2132打印机灯一直闪不打印)

  • 荣耀8x屏幕多大尺寸(荣耀8x的屏幕是多大的)

    荣耀8x屏幕多大尺寸(荣耀8x的屏幕是多大的)

  • 荣耀9x如何设置面部解锁(荣耀9x如何设置指纹锁)

    荣耀9x如何设置面部解锁(荣耀9x如何设置指纹锁)

  • 华为荣耀8c手机屏幕多大(华为荣耀8C手机可以系统升级为5G吗?)

    华为荣耀8c手机屏幕多大(华为荣耀8C手机可以系统升级为5G吗?)

  • 苹果长按图标为啥不出现删除(苹果长按桌面图标没反应)

    苹果长按图标为啥不出现删除(苹果长按桌面图标没反应)

  • 领导留言板怎么删除(领导留言板怎么修改自己的留言)

    领导留言板怎么删除(领导留言板怎么修改自己的留言)

  • 数据库中表之间的关系有哪三种关系(数据库中表之间存在着三种关系:一对一)

    数据库中表之间的关系有哪三种关系(数据库中表之间存在着三种关系:一对一)

  • 淘宝退货填错单号怎么修改呢(淘宝退货填错单号运费险还理赔吗?)

    淘宝退货填错单号怎么修改呢(淘宝退货填错单号运费险还理赔吗?)

  • 华为nova7看视频不能全屏(华为nova7看视频黑屏)

    华为nova7看视频不能全屏(华为nova7看视频黑屏)

  • 华为的备忘录在哪里打开(华为的备忘录在电脑哪个文件夹)

    华为的备忘录在哪里打开(华为的备忘录在电脑哪个文件夹)

  • 路由器需要光猫吗(路由器需要光猫才能用无线网吗)

    路由器需要光猫吗(路由器需要光猫才能用无线网吗)

  • 苹果xs长度多少厘米(苹果xs手机长宽多少)

    苹果xs长度多少厘米(苹果xs手机长宽多少)

  • realmex2有红外吗(realmex2有红外功能吗)

    realmex2有红外吗(realmex2有红外功能吗)

  • 手机受潮有哪些症状(手机受潮怎么处理方法)

    手机受潮有哪些症状(手机受潮怎么处理方法)

  • 微博有定时发送功能吗(微博有定时发送消息的功能)

    微博有定时发送功能吗(微博有定时发送消息的功能)

  • 荣耀9xpro有nfc功能吗(荣耀9x带nfc)

    荣耀9xpro有nfc功能吗(荣耀9x带nfc)

  • 米家扫地机器人扫地声音大吗(米家扫地机器人2和2pro区别)

    米家扫地机器人扫地声音大吗(米家扫地机器人2和2pro区别)

  • 小米8语音唤醒在哪(小米语音唤醒可以卸载吗)

    小米8语音唤醒在哪(小米语音唤醒可以卸载吗)

  • CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily(vue2editor)

    CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily(vue2editor)

  • Angular快速入门(angular 初学者快速上手教程)

    Angular快速入门(angular 初学者快速上手教程)

  • 带息负债融资成本率意义
  • 增值税价外费用开票内容
  • 支付的各项税费现金流量表怎么填
  • 税控系统技术维护费会计处理280
  • 其他应收款如何清理
  • 合伙企业借款利息收入个税
  • 劳务公司怎样纳税
  • 企业基本保险
  • 转售水的税率
  • 资产负债表金额越来越大代表什么
  • 专项应付款转资本公积
  • 公允价值变动损益属于当期损益吗
  • 企业职工支付条例
  • 教育费附加减免政策
  • 专利申请费用怎么做账
  • 领用原材料的会计分录
  • 应交税金的明细科目
  • 初级考试备考计划
  • 贴现率与再贴现率计算机行业是好多
  • 销售商品包安装如何确认收入
  • macbook pro怎么检测
  • 鸿蒙系统如何添加信任软件
  • 雪茄烟在什么环节交消费税
  • linux系统的文件与目录操作
  • Laravel 5.4中migrate报错: Specified key was too long error的解决
  • php遍历显示多维数组
  • type3插件
  • js16.vip
  • 原始凭证可以没有名称吗
  • 银行卡透支怎么还
  • php pdo oracle
  • 收不回的应收账款会计分录
  • phprestfulapi框架
  • 职工福利费会计科目怎么写
  • uniapph5微信支付
  • python优化工具箱
  • cuppath
  • wget下载yum
  • 企业账户有什么好处
  • 食堂增值服务有哪些
  • 企业发生待摊费会计分录
  • pythonsorted函数的作用
  • db2udb
  • 自定义函数是啥
  • 专利银行汇款操作步骤
  • 起重机属于固定资产中什么设备类型
  • 待处理财产损益借方增加还是减少
  • 其他所得
  • 城镇土地使用税的计税依据
  • 加油费属于什么报销费用
  • 新公司办公室装修费怎么记账
  • 怎么理解什么是生命
  • 企业安全生产费用可由企业用于购置
  • 汽车折旧年限是多久
  • fedora soas
  • backupwx.exe
  • Win7系统设置屏保密码
  • linux文件系统inode
  • schedulerv2.exe - schedulerv2是什么进程 有什么用
  • win10怎么进去
  • win8打开ie
  • linux crontab用法
  • win7旗舰版u盘在电脑上读不出来
  • win7 32位无线网卡驱动
  • 如何解决老电脑卡顿问题
  • cocos2dx tableview基础:实现多图片的滑动显示
  • Unity3d_NGUI和UGUI的学习
  • python二级怎么出题
  • js创建对象的三种方式
  • linux中scp命令和scp命令用法大全
  • js中splice方法
  • python写出来的程序怎么用
  • js foreach倒序
  • jq绑定事件的方法有哪些
  • python 数据类型
  • jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
  • 音频资料下载
  • 房屋设备租赁费
  • 购买的土地没有土地使用证
  • 中国税务网发票怎么开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设