
你所理解的同源和跨域
发布日期:2021-05-18 05:57:10
浏览次数:25
分类:原创文章
本文共 769 字,大约阅读时间需要 2 分钟。
Ajax:属于同源策略
JSONP:属于跨域策略(但是解决跨域的方案不止JSONP,还有更多的方案,JSONP只是最常用的一种)
同源
- 协议
- 域名
- 端口号
完全一致才属于同源,否则就是跨域
JSONP原理
- 在script的世界中,没有同源跨域这一说,只要你给我SRC属性中的地址是一个合法地址,SCRIPT都可以把对应的内容请求回来;
JSONP就是利用了SCRIPT这个原理
- 1)我们首先把需求请求的数据,跨域的API数据接口地址,赋值给script的SRC中;
- 2)把当前页面的某一个函数名当做参数值,传递给服务器(url问号传参的方式);
- 3)服务器接收到请求之后,需要进行特殊的处理,把你传递进来的函数名和它需要给你的数据拼接成一个字符串
例如:我们传递进去的函数是fn,服务器准备好的数据是fn([{“name”:“godfery”}]) ->‘我传递的函数名(需要给我们的数据)’
- 4)最后服务器把准备的数据通过HTTP协议返回给我们客户端,客户端发现其实就是让我们的fn执行,而且还给fn传递了一堆数据,那些数据就是我们想要的.
代码示例
<script type="text/javascript" charset="utf-8" > function fn(data){ console.log(data) }</script>// jsonp方式 callback后面的fn就是我传递给服务器的函数,名字可以自己任意取<script type="text/javscript" charset="utf-8" src="http://matchweb.sports.qq.com/kbs/calendar?columnId=100000&callback=fn"></script>
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月01日 23时13分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Jquery】获取当前窗口的宽度值/高度值
2019-03-13
Android 架构组件 – 让天下没有难做的 App
2019-03-13
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
欢迎来到小迪博客
2019-03-13
【Altium Designer21】工作栏中文解析
2019-03-13
[87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
2019-03-13
Shell脚本防DNS攻击检测并删除肉机IP
2019-03-13
如何在VSCode中定制JSON的IntelliSense
2019-03-13
椭圆曲线的定义
2019-03-13
多代理区块链框架客户端的操作
2019-03-13
RSA操作中的公钥和私钥的生成
2019-03-13
go语言中类的继承和方法的使用
2019-03-13
caffe训练的时候遇到的text-format 错误解决方案。
2019-03-13
Little Zu Chongzhi's Triangles
2019-03-13
Train Problem II(卡特兰数+大数乘除)
2019-03-13
一些技术博客
2019-03-13
第01问:MySQL 一次 insert 刷几次盘?
2019-03-13
分布式 | DBLE 3.20.07.0 来啦!
2019-03-13
振荡器指标
2019-03-13
libvirtd:内部错误:Failed to apply firewall rule
2019-03-13