ajax笔记4--如何解决跨域问题
2016-09-18 18:16
253 查看
一个完整的域名地址
http:// www. abc.com : 8080/ hello.html
协议 子域名 主域名 端口 请求资源地址
跨域就是 不同域之间相互请求资源
比如 http://www.abc.com/index.html 请求 http://www.efg.com/service.php
javascript不允许跨域访问,在笔记2中的案例,如果将客户端请求地址改变一下
默认为 localhost,但其实127.0.0.1也是本机
但是如果再代码中将地址改为 127.0.0.1 就会出错
这就是js不允许跨域访问
解决跨域访问有以下3个途径
笔者注:理解相当粗浅,仅仅做个记录,方便日后查看
1.在服务器端找一个代理
比如我从abc这个域要访问qaz,那么我可以在abc服务器端写一个代理,让这个代理来帮忙转接到qaz,
这样在前端js看来是访问abc中的一个资源,而实际上是访问了qaz
2.Jsonp,但须注意的是,该方法不支持POST
对于前端代码改变也很微乎其微,如下
dataType: "jsonp",
jsonp: "callback",
因后端使用php,暂且不提
3.XHR2
HTML5提供的XMLHttpRequest Lecel2已经实现了跨域访问以及其他的一些新功能
IE10以下的版本均不支持
只需在服务器端做改造即可
header('Access-Control-Allow-Rrigin:*');
*号表示可以访问所有域名,也可以指定特殊的域名
header('Access-Control-Allow-Methods:POST,GET');
http:// www. abc.com : 8080/ hello.html
协议 子域名 主域名 端口 请求资源地址
跨域就是 不同域之间相互请求资源
比如 http://www.abc.com/index.html 请求 http://www.efg.com/service.php
javascript不允许跨域访问,在笔记2中的案例,如果将客户端请求地址改变一下
默认为 localhost,但其实127.0.0.1也是本机
但是如果再代码中将地址改为 127.0.0.1 就会出错
这就是js不允许跨域访问
解决跨域访问有以下3个途径
笔者注:理解相当粗浅,仅仅做个记录,方便日后查看
1.在服务器端找一个代理
比如我从abc这个域要访问qaz,那么我可以在abc服务器端写一个代理,让这个代理来帮忙转接到qaz,
这样在前端js看来是访问abc中的一个资源,而实际上是访问了qaz
2.Jsonp,但须注意的是,该方法不支持POST
对于前端代码改变也很微乎其微,如下
dataType: "jsonp",
jsonp: "callback",
因后端使用php,暂且不提
3.XHR2
HTML5提供的XMLHttpRequest Lecel2已经实现了跨域访问以及其他的一些新功能
IE10以下的版本均不支持
只需在服务器端做改造即可
header('Access-Control-Allow-Rrigin:*');
*号表示可以访问所有域名,也可以指定特殊的域名
header('Access-Control-Allow-Methods:POST,GET');
相关文章推荐
- 谷歌浏览器如何设置可以解决Ajax跨域问题
- 黑马程序员之ASP.NET学习笔记:AJAX解决什么问题?如何使用AJAX?
- Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
- 如何解决ajax跨域重定向问题
- 谷歌浏览器如何设置可以解决Ajax跨域问题?
- ajax 、ajax的交互模型、如何解决跨域问题——面试题
- ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
- ajax 有那些优缺点-如何解决跨域问题-ajax过程
- Ajax如何解决跨域问题
- ajax如何解决跨域问题
- 如何快速解决本地开发时 ajax 跨域拒绝问题
- Ajax 的概念及过程?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
- ajax 、ajax的交互模型、如何解决跨域问题
- ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
- AJAX中的跨域问题:什么是跨域?如何解决跨域问题?
- 谷歌浏览器如何设置可以解决Ajax跨域问题?
- ajax 、ajax的交互模型、如何解决跨域问题
- 使用JQUERY解决AJAX的跨域问题
- 用Nginx和Apache的反向代理解决Ajax的跨域问题
- 几个问题(十一)-------ajax是否能跨域请求,解决的办法