vue---兼容ie遇到的坑,Unhandled promise rejection NavigationDuplicated/Unhandled promise rejection error

說到兼容ie,真是跟ie瀏覽器鬥爭到底呀,真的是不喜歡用ie瀏覽器,chrome多好。辛酸,可是也不能不去解決它!出現問題如下:當發送後臺請求時

ie控制檯報錯

問題1.Unhandled promise rejection NavigationDuplicated

問題2.unhandled promise rejection error:Request failed with status code 400(人家chrome瀏覽器可沒這麼多問題)

 

解決方法:

問題1解決方法:在路由配置文件中加入:

const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err);
};

問題2解決方法:百度解決中。。。提示說是由於代碼中沒有catch錯誤,乖乖加上catch

再次試着發送請求,catch中的error被打印出來,可是還是找不到問題的錯誤點啊。

完全沒頭緒,還好冷靜下來比對了下出現這種情況的請求類型。發現當url當中含有中文才會出現這個問題。

相同請求,在chrome和ie瀏覽器開發者工具network中比對如下:

1、ie11瀏覽器中:

2、chrome瀏覽器中:

對比發現出現該問題的原因:ie中url 是不支持中文,需要將中文轉碼,具體方式爲對encodeURI(url)

再次發送請求,數據顯示正常,ie開發者工具network中URL顯示和chrome中顯示一致。

參考文章:

Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated"}的解決方法

Unhandled promise rejection --解決辦法

IE中ajax或者跳轉url中帶中文參數的坑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章