常見前端開發面試題(http部分)

跨域有哪幾種方式


1.jsonp跨域
2.CORS跨域資源共享
3.iframe標簽跨域
4.在webpack中通過配置devServer的方式跨域
5.通過集成環境(本地模擬服務器, apache或者tomcat)跨域
6.使用chrome瀏覽器插件跨域

如果是在小程序中,需要配置你的https服務器白名單。

cookies,sessionStorage和localStorage的區別


首先共同點:這三個都儲存在用戶本地。
區別:cookie有個數和大小限制(50個/4kb)。刪除的時候需要通過設置過期時間來刪除。
sessionStorage和localStorage是html5中新增加的用于用戶本地數據持久化的解決方案,用于替代cookie。
這倆單一條數據的儲存空間可以達到5M,但是sessionStorage的生命周期只存在于你瀏覽器打開的時候,
當你關閉的時候sessionStorage會自動清除。
localStorage則不受限制,在設置以后,需要通過clear方法刪除。

vue-router query和params傳參有什么區別


首先我們知道vueroute傳參其實走的就是url中的post和get。
如果是query,表示get,你的參數會用明文的形式保存在瀏覽器地址中,這樣用戶會看到參數,可能會對安全性上造成一些隱患。但是,
這樣做有一個好處就是,當用戶刷新瀏覽器的時候,參數依然存在。你的相應頁面不會因為參數的丟失導致錯誤。
如果是params,表示post,你的參數不會顯示在瀏覽器地址中,用戶看不到參數,只有你接收的頁面通過$route.params.參數名來接收。好處是,安全性能高,缺點是這個參數保存在內存中,你一旦刷新頁面就不存在了。

前后端分離如何保護數據傳輸安全性


通過token,在ajax請求中把token添加到headers上。

如何處理ajax常見錯誤


ajax有一個error屬性,比如:

$.ajax({
    type:"get",
    url:url,
    success:function (res) {
        //...
    }),
    error: function (err) {   //ajax請求失敗時返回   返回的err是一個對象
        if(err.status>=400&&err.status<500){
           window.location.href="./404.html"
        }else if(err.status>=500&&err.status<600){
           window.location.href="./500.html"
        }else{
            alert(err.status + '(' + err.statusText + ')');  
            //返回ajax請求失敗的值   如(404  not find)  讓用戶知道是請求報錯了 
        }
    }
}});

ajax失敗以后會返回一個error對象,這個error對象有一個status屬性,就是返回的錯誤值。
我們可以在這里為用戶制作幾個錯誤頁面,或者讓用戶跳轉回首頁。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,638評論 0 5
  • 本文旨在加深對前端知識點的理解,資料來源于網絡,由本人(博客:http://segmentfault.com/u/...
    風起云帆閱讀 334評論 0 0
  • 【轉載】CSDN - 張林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牘閱讀 3,507評論 1 14
  • 前些日子在忙著面試,拿了心儀的 offer 以后閑下來整理了一些面試相關的基本概念。由于很多關于代碼細節的東西之前...
    faremax閱讀 1,417評論 0 4
  • 前端開發面試知識點大綱: HTML&CSS: 對Web標準的理解、瀏覽器內核差異、兼容性、hack、CSS基本功:...
    秀才JaneBook閱讀 2,458評論 0 25