本篇文章給大家分享的是有關(guān)ajax常見的面試問題有哪些,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供洱源企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為洱源眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
異步的javascript和xml AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。 ajax用來與后臺交互
//創(chuàng)建 XMLHttpRequest 對象 var ajax = new XMLHttpRequest(); //規(guī)定請求的類型、URL 以及是否異步處理請求。 ajax.open('GET',url,true); //發(fā)送信息至服務(wù)器時內(nèi)容編碼類型 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //發(fā)送請求 ajax.send(null); //接受服務(wù)器響應(yīng)數(shù)據(jù) ajax.onreadystatechange = function () { if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { } };
//字符串轉(zhuǎn)對象 JSON.parse(json)eval('(' + jsonstr + ')') // 對象轉(zhuǎn)字符串 JSON.stringify(json)
常用的post,get,delete。不常用copy、head、link等等。
###代碼上的區(qū)別 1:get通過url傳遞參數(shù) 2:post設(shè)置請求頭 規(guī)定請求數(shù)據(jù)類型###使用上的區(qū)別 1:post比get安全 (因為post參數(shù)在請求體中。get參數(shù)在url上面) 2:get傳輸速度比post快 根據(jù)傳參決定的。 (post通過請求體傳參,后臺通過數(shù)據(jù)流接收。速度稍微慢一些。而get通過url傳參可以直接獲取) 3:post傳輸文件大理論沒有限制 get傳輸文件小大概7-8k ie4k左右 4:get獲取數(shù)據(jù) post上傳數(shù)據(jù) (上傳的數(shù)據(jù)比較多 而且上傳數(shù)據(jù)都是重要數(shù)據(jù)。所以不論在安全性還是數(shù)據(jù)量級 post是最好的選擇)
同源策略限制 不同源會造成跨域。以下任意一種情況不同,都是不同源。
http://www.baidu.com/8080/index.html
http:// | 協(xié)議不同 |
---|---|
www | 子域名不同 |
baidu.com | 主域名不同 |
8080 | 端口號不同 |
www.baidu.com | ip地址和網(wǎng)址不同 |
//去創(chuàng)建一個script標(biāo)簽 var script = document.createElement("script"); //script的src屬性設(shè)置接口地址 并帶一個callback回調(diào)函數(shù)名稱 script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback"; //插入到頁面 document.head.appendChild(script); //通過定義函數(shù)名去接收后臺返回數(shù)據(jù)function jsonpCallback(data){ //注意 jsonp返回的數(shù)據(jù)是json對象可以直接使用 //ajax 取得數(shù)據(jù)是json字符串需要轉(zhuǎn)換成json對象才可以使用。 }
需要后臺設(shè)置 Access-Control-Allow-Origin: * //允許所有域名訪問,或者 Access-Control-Allow-Origin: http://a.com //只允許所有域名訪問
// URL http://a.com/foo var ifr = document.createElement('iframe'); ifr.src = 'http://b.a.com/bar'; ifr.onload = function(){ var ifrdoc = ifr.contentDocument || ifr.contentWindow.document; ifrdoc.getElementsById("foo").innerHTML); }; ifr.style.display = 'none'; document.body.appendChild(ifr);
2xx (成功)表示成功處理了請求的狀態(tài)代碼
200 (成功) 服務(wù)器已成功處理了請求。 通常。
3xx (重定向) 表示要完成請求,需要進一步操作。 通常,這些狀態(tài)代碼用來重定向。
304 (未修改) 自從上次請求后,請求的網(wǎng)頁未修改過。 服務(wù)器返回此響應(yīng)時,不會返回網(wǎng)頁內(nèi)容。
4xx(請求錯誤) 這些狀態(tài)代碼表示請求可能出錯,妨礙了服務(wù)器的處理
1:400 (錯誤請求) 服務(wù)器不理解請求的語法。 2:403 (禁止) 服務(wù)器拒絕請求。 3:404 (未找到) 服務(wù)器找不到請求的網(wǎng)頁。
5xx(服務(wù)器錯誤)這些狀態(tài)代碼表示服務(wù)器在嘗試處理請求時發(fā)生內(nèi)部錯誤。 這些錯誤可能是服務(wù)器本身的錯誤,而不是請求出錯
500 (服務(wù)器內(nèi)部錯誤) 服務(wù)器遇到錯誤,無法完成請求。 501 (尚未實施) 服務(wù)器不具備完成請求的功能。 例如,服務(wù)器無法識別請求方法時可能會返回此代碼。 502 (錯誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應(yīng)。 503 (服務(wù)不可用) 服務(wù)器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態(tài)。 504 (網(wǎng)關(guān)超時) 服務(wù)器作為網(wǎng)關(guān)或代理,但是沒有及時從上游服務(wù)器收到請求。 505 (HTTP 版本不受支持) 服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本。
以上就是ajax常見的面試問題有哪些,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。