同源&跨域(jsonp原理 / jQuery 的 jsonp)
来源:互联网 发布:cms html5模板 编辑:程序博客网 时间:2024/06/05 18:41
1. 同源
同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口完全相同。
2. 跨域
不同源则跨域。
3. 顶级域名相同时的跨域解决方案
① domain.name = 顶级域名(如example.com)
② document.domain + iframe
③ window.name + iframe
④ location.hash + iframe
⑤ window.postMessage()
4. jsonp:解决跨域通讯问题
JSON with Padding
jsonp:与ajax没有关系,需要前后端配合
前后端约定好,使用某个名称(如callback)来进行函数的调用。前端传入函数名,后端接收函数名,并将数据拼接成函数参数的形式与函数名进行字符串拼接,返给前端,前端会解析成js,并执行函数。
1.script标签可跨域
2.后台响应的字符串到前端默认以js解析
3.双方约定参数名称
4.传入复杂数据json格式
spa(single page application):单页面应用程序
① jsonp原理
利用script标签的src可以引用其他网站的资源,动态创建script标签和回调函数,传递给后台。
其本质是利用了标签具有可跨域的特性, 由服务端返回一个预先定义好的Javascript函数的调用,并且将服务器数据以该函数参数的形式传递过来, 此方法需要前后端配合完成。
可跨域的标签:script、img等
<!--jsonp跨域通信原理-->
<script>
/*1.动态创建script标签*/
var script = document.createElement('script');
/*2.动态创建回调函数*/
var success = function (data) {
console.log(data);
};
/*3.设置接口地址为script标签的src并且加上回调函数的名称*/
script.src = 'http://api.study.com/01jsonp.php?callback=success';
/*4.追加到html文档当中*/
document.body.appendChild(script);
</script>
② JQuery 的 jsonp
JQuery 的 ajax 方法,设置 dataType 为 jsonp,进行跨域请求。
$.ajax({
type:'get',
url:'http://api.study.com/01jsonp.php',
/*设置jsonp 进行跨域请求*/
dataType:'jsonp',
success: function (data) {
console.log(data);
}
});
0 0
- 同源&跨域(jsonp原理 / jQuery 的 jsonp)
- Jquery的Jsonp原理
- 同源、跨域、jsonp(面试常问)
- 同源、跨域、jsonp(面试常问)
- jQuery的ajax跨域 Jsonp原理
- 同源策略与jsonp跨域
- jsonp的工作原理 跨域
- jquery实现的jsonp跨域
- json与jsonp的区别、同源策略
- (跨域)JSONP原理 $.getJSON 用法 jquery跨域
- jquery-javascrip(jsonp) 跨域
- 学习 同源策略,jsonp,跨域 随记
- 同源策略与jsonp
- JSONP处理同源策略
- 同源策略 及 jsonp
- 同源策略和JSONP
- JSONP 的工作原理,JSONP Demo讲解
- JSONP以及jQuery对JSONP的实现
- js 缓动框架封装
- return 局部变量合法,函数返回值的生命周期
- Python练习实例15
- LeetCode 366. Find Leaves of Binary Tree
- Http Status 304响应状态的资源更新机制
- 同源&跨域(jsonp原理 / jQuery 的 jsonp)
- Git使用简述
- BZOJ 3130 [Sdoi2013] 费用流
- 职场攻略
- 《大内密探零零发》
- 【所悟】【浮点型数据的表示】
- LeetCode 280. Wiggle Sort
- PowerDesigner V16.5 安装文件 及 破解文件
- Codeforces Round #390(Div. 2)D. Fedor and coupons【优先队列】