一个完整的域名地址
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');