題目
a) 手動編寫一個ajax,不依賴第三方庫
b) 跨域的幾種實現方式
知識點
XMLHttpRequest
var xhr=new XMLHttpRequest();
xhr.open(‘GET’,’/app’,false) //false 異步
xhr.onreadystatechange=function(){
if(xhr.readyState4){
if(xhr.state200){
alert(xhr.responseText)
}
}
}
xhr.send(null)
IE低版本使用ActiveObject,和W3C不同
狀態碼說明
xhr.readyState4
0 (爲初始化)還沒有調用send方法
1 (載入)已調用send方法,正在發生請求
2 (載入完成)send方法執行完成,已接收到全部相應內容
3 (交互)正在解析相應內容
4* (完成)響應內容解析完成,可以在客戶端調用了
xhr.state200
2xx 表示成功處理請求 如200
3xx 需要重定向,瀏覽器直接跳轉
4xx 客戶端請求錯誤 如404
5xx 服務端錯誤
跨域
什麼是跨域
瀏覽器有同源策略,不允許ajax訪問其他域接口
跨域條件:協議、域名、端口,有一個不同計算跨域
但是有三個標籤允許跨域加載資源
用於打點統計,統計網站可能是其他域
JSONP 服務器端設置http header