欢迎使用CSDN-markdown编辑器
来源:互联网 发布:linux cat 全部 编辑:程序博客网 时间:2024/05/29 17:27
Ajax如何实现跨域问题
一个域名的组成
http:// www . abc.com : 8080 /scripts/jquery.js 协议 子域名 主域名 端口号 请求资源地址
当协议、子域名、主域名、端口号中任意一个不同时,都算作不同域。
同域之间相互请求资源,就算作”跨域”。
同源策略
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象——同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前Web页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。这个浏览器策略很旧,从 Netscape Navigator 2.0 版本开始就存在。
处理跨域的方式
代理
通过同域名的服务器创建一个代理——让 Web 页面向它源自的 Web 服务器请求数据,并且让 Web 服务器像代理一样将请求转发给真正的第三方服务器。如:
北京服务器:
www.beijing.com
上海服务器:
www.shanghai.com
北京web服务器后台:
www.beijing.com/proxy-shanghaiservice.php
来调用上海服务器的服务:
www.shanghai.com/service.php
然后将响应结果返回给前端,这样前端调用背景同域名的服务就和调用上海的服务具有相同的效果。
处理跨域方式二——JSONP(只支持GET请求)
JSONP可用于解决主流浏览器的跨域数据访问的问题。
在www.aaa.com页面中:
<script> function jsonp(json){alert(json["name"]);}</script><script src="http;//www.bbb.com/jsonp.js"></script>
在www.bbb.com页面中:
jsonp({'name':'xx','age':24})
处理跨域的方法三——XHR2
*HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能
*IE10以下的版本都不支持
*在服务器端
header('Access-Control-Allow-Origin:*');header('Access-Control-Allow-Methods:POST,GET');
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 5-30 Table Tennis (30分)
- 转载的是linuxtone论坛上的前辈学运维的经验,用于共勉。
- Android之Widget认识
- iOS子线程操作检测版本更新,防止阻塞住线程
- 读论语其一
- 欢迎使用CSDN-markdown编辑器
- 浅析Java中的final关键字
- UVa-1225 - Digit Counting:simple
- 在ubuntu中配置jdk安装eclipse
- 顺序表(删除 、查找、插入、合并、输出)
- bfs
- Binary Tree Paths
- 奇技淫巧之浏览器秒秒钟变编辑器
- 我的第一篇博客(mysql只比较月日的情况)