## 1、域名的组成
http://www.abc.com:8080/scripts/jquery.js
其中http://是协议,www是子域名,abc.com是主域名,8080是端口号,scripts/jquery.js是请求资源地址
## 2、跨域
* 不同域之间请求资源就算做跨域、
* Javascript出于安全性的考虑,不允许跨域调用其他页面的对象。简单理解就是因为Javascript同源策略的限制,a.com域名下的js无法操作b.com域名下的对象。
## 3、如何解决跨域
### 3、1jsonp
~~~
$.ajax({
type:"method",
url:"",
dataType:"jsonp",
jsonp:"callback",
success:function(data){
},
error:function(xhr){
console.log(xhr.status)
}
})
~~~
### 3、2服务器的解决方案
1. HTML5提供的XMLHttpRequestLevel2已经实现了跨越访问以及其他的一些新功能
2. IE10以下的版本都不支持
3. 在服务器端做一些小小的改造即可:
header(`Access-Control-Allow-Origin:*`);
header(`Access-Control-Allow-Methods:POST,GET`);
## 3、js中script标签不受同源策略的影响也可以实现跨越
~~~
var script = document.createElement("script");
script.src = "http://api.douban.com/v2/movie/subject/1764796?&callback=handleResponse";
document.body.prepend(script);
function handleResponse(res) {
// 对response数据进行操作代码
console.log(res)
}
~~~