官方給的解釋是: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; } )
