axios在IE9環境下報錯Unhandled promise rejection TypeError: 無法獲取未定義或 null 引用的屬性“result“


原文鏈接

官方給的解釋是:XMLHttpRequest.response只支持IE10+(https://msdn.microsoft.com/en-us/library/hh872881(v=vs.85).aspx)。

原因就清楚了,IE8-9沒有這個字段,所以axios中的response.data賦值時就為undefined。

這個問題在2016年被提出,2019年8月被關閉了,雖然中間給出了兼容辦法,但PR一直未合並。原因是認為ie9已經過時了,微軟從2017年3月31日就已經停止了維護支持。所以需要自己手動稍稍改一下。

axios.interceptors.response.use(
  response => {
    // IE 8-9 
    if (response.data == null && response.config.responseType === 'json' && response.request.responseText != null) {
      try {
        // eslint-disable-next-line no-param-reassign
        response.data = JSON.parse(response.request.responseText);
      } catch (e) {
        // ignored
      }
    }
    return response;
  }
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM