博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解jsonp跨域请求原理
阅读量:5026 次
发布时间:2019-06-12

本文共 1146 字,大约阅读时间需要 3 分钟。

在进行网站开发的过程中经常会用到第三方的数据,但是由于同源策略的限制导致ajax不能发送请求,因此也无法获得数据。解决ajax的跨域问题有两种方法:

  一、jsop  

  二、XMLHttpRequest2中可以配合服务端来解决,在响应头中加入Access-Control-Allow-Origin:*

1、同源:

  同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口号完全相同

  1.1目的:保护用户信息安全
  1.2限制:cookie、localStorage和IndexDB无法读取
  无法操作跨域的iframe里的dom元素
  ajax请求不能发送

 2、跨域:

不同源则为跨域

1      http://api.example.com/detail.html  不同源 域名不同  2      https//www.example.com/detail.html   不同源 协议不同  3      http://www.example.com:8080/detail.html    不同源    端口不同  4      http://api.example.com:8080/detail.html    不同源    域名、端口不同  5      https://api.example.com/detail.html    不同源    协议、域名不同  6      https://www.example.com:8080/detail.html    不同源    端口、协议不同  7      http://www.example.com/detail/index.html    同源    只是目录不同

3、jsonp原理:

其本质是利用了script标签具有可跨域的特性,由服务端返回预先定义好的javascript函数的调用,并且将服务端数据以该函数参数的形式传递过来。

<script>

function fuc(data){
console.log(data.name);
}
</script>
<script src="http://www.baidu.com/api.php?callback=fuc"></script>

4、后台代码

1 
'zs',5 'age'=>18,6 'gender'=>true7 );8 echo $cb.'('.json_encode($data).')';9 ?>

转载于:https://www.cnblogs.com/xieli26/p/10030811.html

你可能感兴趣的文章
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>
NSEnumerator用法小结
查看>>
vim如何配置go语言环境
查看>>
机器学习好网站
查看>>
python 中的 sys , os 模块用法总结
查看>>
解题:国家集训队 Middle
查看>>
响应者链
查看>>
指针从函数内部带回返回值
查看>>
在使用webView播放flash或视频文件时无法关闭声音的问题
查看>>