同源策略:請求的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
對象傳進去。瀏覽器