位置: 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算法)

  • 怎么查看微信好友添加的时间(怎么查看微信好友添加方式)

    怎么查看微信好友添加的时间(怎么查看微信好友添加方式)

  • 华为手机丢了定位怎么找到准确位置(华为手机丢了定位怎么找回)

    华为手机丢了定位怎么找到准确位置(华为手机丢了定位怎么找回)

  • 荣耀30s支持otg功能吗

    荣耀30s支持otg功能吗

  • 华为b5运动版和商务版的区别(华为手环b5运动版和b5商务版有什么区别)

    华为b5运动版和商务版的区别(华为手环b5运动版和b5商务版有什么区别)

  • 苹果手机屏幕下方的灰条怎么去掉(苹果手机屏幕下面的白框怎么去掉)

    苹果手机屏幕下方的灰条怎么去掉(苹果手机屏幕下面的白框怎么去掉)

  • airpods充电线和iphone通用吗(airpods充电线和iphone充电速度一样吗)

    airpods充电线和iphone通用吗(airpods充电线和iphone充电速度一样吗)

  • qq红包最多一次发多少(qq红包上限多少)

    qq红包最多一次发多少(qq红包上限多少)

  • 腾讯会议用流量多吗(腾讯会议用流量开视频半个小时要多少流量)

    腾讯会议用流量多吗(腾讯会议用流量开视频半个小时要多少流量)

  • 华为p20有红外线遥控功能吗(华为p20有红外线设备吗)

    华为p20有红外线遥控功能吗(华为p20有红外线设备吗)

  • 黑苹果为什么烧主板(黑苹果发热为什么大)

    黑苹果为什么烧主板(黑苹果发热为什么大)

  • 加微信显示对方拒绝接收你的消息(加微信显示对方被加好友过于频繁)

    加微信显示对方拒绝接收你的消息(加微信显示对方被加好友过于频繁)

  • 2.26ghz intel core 2 duo是什么处理器

    2.26ghz intel core 2 duo是什么处理器

  • airpods pro进水了怎么办(airpods pro进水了有刺耳的声音)

    airpods pro进水了怎么办(airpods pro进水了有刺耳的声音)

  • 创意h5是什么意思(有创意的h5)

    创意h5是什么意思(有创意的h5)

  • 华为mate30镜头膜有必要贴吗(华为mate30镜头膜怎么取)

    华为mate30镜头膜有必要贴吗(华为mate30镜头膜怎么取)

  • ipv4地址的分类有哪些(ipv4地址种类)

    ipv4地址的分类有哪些(ipv4地址种类)

  • 替换怎么操作(word文档查找替换怎么操作)

    替换怎么操作(word文档查找替换怎么操作)

  • 第一代计算机主要使用什么语言(第一代计算机主要特点)

    第一代计算机主要使用什么语言(第一代计算机主要特点)

  • 京东怎么取消评价(京东怎么取消评价晒单)

    京东怎么取消评价(京东怎么取消评价晒单)

  • 快手极速版咋暂停播放(快手极速版咋暂停了)

    快手极速版咋暂停播放(快手极速版咋暂停了)

  • 手机扬声器声音变小了怎么办(手机扬声器声音太小)

    手机扬声器声音变小了怎么办(手机扬声器声音太小)

  • 手机文件夹打不开怎么办(为何手机文件打不开)

    手机文件夹打不开怎么办(为何手机文件打不开)

  • 淘宝生日能改吗(淘宝生日修改)

    淘宝生日能改吗(淘宝生日修改)

  • 苹果8怎么开启使用nfc(苹果8怎么开启悬浮球)

    苹果8怎么开启使用nfc(苹果8怎么开启悬浮球)

  • 苹果耳机接电话按哪里(苹果耳机接电话有延迟怎么办)

    苹果耳机接电话按哪里(苹果耳机接电话有延迟怎么办)

  • 酷狗买的单曲在哪里看(酷狗买的单曲在哪里找)

    酷狗买的单曲在哪里看(酷狗买的单曲在哪里找)

  • xr和xs屏幕对比(xr和xs的区别)

    xr和xs屏幕对比(xr和xs的区别)

  • 小红书买的东西怎么查(小红书买的东西别人能看到吗)

    小红书买的东西怎么查(小红书买的东西别人能看到吗)

  • 微信支付面容怎么设置(微信支付面容怎么设置苹果手机)

    微信支付面容怎么设置(微信支付面容怎么设置苹果手机)

  • 悬崖上雕刻的古老岩石墓葬,土耳其达利安附近 (© Reinhard Schmid/eStock Photo)(悬崖雕塑)

    悬崖上雕刻的古老岩石墓葬,土耳其达利安附近 (© Reinhard Schmid/eStock Photo)(悬崖雕塑)

  • 计提增值税比实际缴纳多
  • 增值税留抵退税怎么做账务处理
  • 电子发票和纸质发票只能二选一吗
  • 什么记在借方
  • 会计哪些账本需要保存
  • 公司所得税费用怎么算报多少钱
  • 税务局未核定的印花税
  • 专门借款资本化时点
  • 失控发票补税可以抵扣吗
  • 滴滴普通发票可以作废吗
  • 开出增值税专用发票流程
  • 不含税销售收入含消费税吗
  • 小规模纳税人个税申报时间
  • 工会专户收到职工福利经费会计处理怎么做?
  • 支付税收罚款怎么算企业所得税
  • 银行余额调节表模板
  • 其他收益小企业会计报表没有怎么填
  • 公户批量扣费是啥意思
  • 工程公司收到工程款
  • mac安装windows不能用键盘
  • 员工两处取得的荣誉
  • 以物抵债的会计分录
  • 银行提取备用金会计分录
  • php中数组的常用函数及用法
  • win10显示无法连接蓝牙
  • PHP:pg_lo_tell()的用法_PostgreSQL函数
  • php添加扩展
  • 业务招待费会计和税法差异
  • struts2漏洞检测工具下载
  • vue $route
  • 学习笔记:深度学习(2)——BP神经网络
  • el-upload上传文件必传校验
  • 其他非流动资产是会计科目吗
  • 天然气零售企业
  • 律师事务所的日记怎么写
  • 辞退员工福利
  • wordpress换域名后主题乱了
  • mysql的简单操作
  • centos5.7
  • 非盈利机构怎么说
  • 国际货运代理可以分哪几类?
  • 辞退福利是短期还是长期
  • 财务软件怎么做红冲分录
  • 公允价值变动损益在利润表哪里
  • sqlserver2012完全卸载
  • 一般纳税人应交税费二级科目有哪些
  • 小规模纳税人怎么申报增值税报表
  • 发票的类型分为哪几类
  • 合作社的资金来源
  • 现金流量表的编制依据
  • 发货环节产生的影响
  • 研发费用归集的主要范围有哪些
  • 抵押贷款评估费自己出吗
  • 重大水利工程建设
  • 小规模纳税人的增值税计入成本吗
  • 汽车折旧年限及残值率是多少
  • 水利基金和印花税会计分录
  • 房地产企业以土地入股如何交纳企业所得税
  • win7 64位系统中使用音乐播放器播放音乐很卡该怎么办?
  • winxp显示设置
  • winxp能玩啥大型游戏
  • windows8快捷键
  • cocos做游戏
  • edxposed 作用域
  • node.js实战
  • android base64传图片
  • perl 时间转换
  • nodejs全栈前景
  • jquery 设置背景色
  • 只指定行网络什么意思
  • 贝塞尔曲线生成器
  • jquery示例
  • CloudEditText
  • 河南医疗保险网上怎么缴费截止时间
  • 江苏国家电子税务局网站
  • 企业招用退役士兵
  • 增值税发票打印机怎么连接电脑
  • 非营利组织认定条件
  • 北京市税务协会领导
  • 紧缩性财政政策有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设