ajax跨域
来源:互联网 发布:网址和域名的区别 编辑:程序博客网 时间:2024/06/18 12:48
ajax跨域访问
1、发送jsonp(json padding)类型数据 (支持cookie和session的传递)
主要利用了script调用可以跨域的漏洞
jsonp是通过创建一个script元素 强行指向到后台的api 参数在地址后携带
类似<script src="http://www.example.php/api?param1=1¶m2=2"></script>
因此只支持get数据 传递的post类型会被转换为get
需要在ajax请求中添加 dataType: 'jsonp'
客户端接受请求:
需调用传递过来的callback参数作为函数名包装json返回json对象数据
$callBack = $_GET['callback'];
$json_arr['errCode'] = 0;
$json_arr['errMsg'] = 'OK';
echo $callBack.'('.json_encode($json_arr).')';
exit();
2、被请求页面添加(不支持cookie和session)
header('Access-Control-Allow-Origin:*'); // 允许所有来源
header('Access-Control-Allow-Method:POST,GET');// 允许所有来源访问
这种方法风险大
可用 header('Access-Control-Allow-Origin:http://zaopi.com'); 这种类型的方式
多个header('Access-Control-Allow-Origin:http://zaopi.com'); 仅最后一个生效 即不支持多域名
如果要允许多个域名
目前只能用php语法判断
即判断发送请求来源的 $_SERVER['HTTP_ORIGIN']
- AJAX跨域
- ajax跨域
- ajax 跨域
- ajax跨域
- AJAX跨域
- ajax跨域
- ajax跨域
- ajax跨域
- Ajax跨域
- ajax 跨域
- ajax跨域
- Ajax跨域
- ajax跨域
- ajax跨域
- AJAX跨域
- ajax跨域
- ajax跨域
- Ajax跨域
- 详解UCOS中的内存管理
- JAVAWEB开发之redis学习(三)——list相关的操作命令
- C++静态库与动态库
- Krpano插件的使用
- Android RecyclerView+StaggerLayoutManager实现瀑布流单选item乱跳
- ajax跨域
- Glide由浅入深
- OpenCV学习笔记:opencv_ml模块
- Codeforces Gym 101164 C. Castle (KMP)
- SpringBoot系列(2)---无配置文件配置基础2
- iOS WebView 加载本地资源(图片,文件等)
- C# 设置word中table翻页不隔断
- 将cout<<的信息重定向到指定文件中
- Codeforces Gym 101164 D. Reading Digits (模拟)