1:什麼是ajax? ajax作用是什麼?
1 | 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术。 ajax用来与后台交互
|
登入後複製
【專題推薦】:2020年ajax面試題目及答案(最新)
2:原生js ajax請求有幾個步驟?分別是什麼
1 2 3 4 5 6 7 8 9 10 11 12 | var ajax = new XMLHttpRequest();
ajax.open('GET',url,true);
ajax.setRequestHeader( "Content-type" , "application/x-www-form-urlencoded" );
ajax.send(null);
ajax.onreadystatechange = function () { if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) {
}
};
|
登入後複製
3:json字串轉換集json物件、json物件轉換json字串
1 2 3 4 | JSON.parse(json) eval ('(' + jsonstr + ')')
JSON.stringify(json)
|
登入後複製
4:ajax幾種請求方式?他們的優缺點?
常用的post,get,delete。不常用copy、head、link等等。
1 2 3 4 5 6 7 8 9 10 | ###代码上的区别
1:get通过url传递参数
2:post设置请求头 规定请求数据类型###使用上的区别
1:post比get安全
(因为post参数在请求体中。get参数在url上面)
2:get传输速度比post快 根据传参决定的。
(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
3:post传输文件大理论没有限制 get传输文件小大概7-8k ie4k左右
4:get获取数据 post上传数据
(上传的数据比较多 而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)
|
登入後複製
5:什麼情況造成跨域?
同源策略限制 不同源會造成跨域。以下任一種情況不同,都是不同來源。
http://www.baidu.com/8080/index.html
##baidu.com主網域不同8080連接埠號不同www.baidu.comip位址和網址不同
6:跨域解決方案有哪些?
1:jsonp 只能解決get跨域(問的最多)
- #原理:動態建立一個script標籤。利用script標籤的src屬性不受同源策略限制。因為所有的src屬性和href屬性都不受同源策略限制。可以請求第三方伺服器資料內容。
- 步驟:
去建立一個script標籤script的src屬性設定介面位址-
介面參數,必須要帶一個自訂函數名稱要不然後台無法回傳資料。 透過定義函數名稱去接收後台回傳資料1 2 3 4 5 6 7 8 9 10 | var script = document.createElement( "script" );
script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback" ;
document.head.appendChild(script);
}
|
登入後複製
2:CORS:跨域資源共用
- 原則:伺服器設定Access -Control-Allow-OriginHTTP回應頭之後,瀏覽器將會允許跨域請求
- 限制:瀏覽器需要支援HTML5,可以支援POST,PUT等方法相容於ie9以上
1 2 3 | 需要后台设置
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: http:
|
登入後複製
3:設定document.domain
- #原理:相同主網域不同子網域下的頁面,可以設定document.domain讓它們同域
- 限制:同域document提供的是頁間的互通,需要載入iframe頁面
1 2 3 4 5 6 7 8 9 10 | var ifr = document.createElement('iframe');
ifr.src = 'http:
ifr.onload = function (){
var ifrdoc = ifr.contentDocument || ifr.contentWindow.document;
ifrdoc.getElementsById( "foo" ).innerHTML);
};
ifr.style.display = 'none';
document.body.appendChild(ifr);
|
登入後複製
4:用Apache做轉發(逆向代理),讓跨域變成同域
7:http常見狀態碼有哪些?
一: 2開頭狀態碼
2xx (成功)表示成功處理了請求的狀態碼1 | 200 (成功) 服务器已成功处理了请求。 通常。
|
登入後複製
二: 3開頭狀態碼
3xx (重定向) 表示要完成請求,需要進一步操作。通常,這些狀態碼用來重定向。 1 | 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
|
登入後複製
三: 4開頭狀態碼
4xx(請求錯誤) 這些狀態碼表示請求可能出錯,妨礙了伺服器的處理1 2 3 4 5 | 1:400 (错误请求) 服务器不理解请求的语法。
2:403 (禁止) 服务器拒绝请求。
3:404 (未找到) 服务器找不到请求的网页。
|
登入後複製
四: 5開頭狀態碼
5xx(伺服器錯誤)這些狀態碼表示伺服器在嘗試處理請求時發生內部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯1 2 3 4 5 6 7 8 9 10 11 | 500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
|
登入後複製
相關文章推薦:ajax影片教學
以上是ajax常見的面試問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!