同源策略:请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.javascript
1,AJAX不是JavaScript的规范, ajax的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求php
注意:AJAX请求是异步执行的,也就是说,要经过回调函数得到响应。java
2,使用原生js实现ajax
建立一个 XMLHttpRequest 对象。若是不支持建立该对象的浏览器,则须要建立 ActiveXObject,具体方法以下:
var xmlHttpRequest;
function createXmlHttpRequest(){
if(window.XMLHttpRequest) //非IE
xmlHttpRequest = new XMLHttpRequest();
else if(window.ActiveObject)//IE6+
xmlHttpRequest = new ActiveObject("Msxml2.XMLHTTP");
else//IE6-
xmlHttpRequest = new ActiveObject("Microsoft.XMLHTTP");
}
提交请求的方法:
open(method,url);//分别为提交的方法(GET或者POST)和提交的url
send(content);
onreadystatechange(){
if(xmlHttpRequest.readyState == 4){
if(xmlHttpRequest.state == 200){
//请求成功
}
}else{
//请求失败
}
}jquery
当建立了XMLHttpRequest
对象后,要先设置onreadystatechange
的回调函数。在回调函数中,一般咱们只需经过readyState === 4
判断请求是否完成,若是已完成,再根据status === 200
判断是不是一个成功的响应。ajax
XMLHttpRequest
对象的open()
方法有3个参数,第一个参数指定是GET
仍是POST
,第二个参数指定URL地址,第三个参数指定是否使用异步,默认是true
,因此不用写。json
注意,千万不要把第三个参数指定为false
,不然浏览器将中止响应,直到AJAX请求完成。若是这个请求耗时10秒,那么10秒内你会发现浏览器处于“假死”状态。跨域
最后调用send()
方法才真正发送请求。GET
请求不须要参数,POST
请求须要把body部分以字符串或者FormData
对象传进去。浏览器