在使用axios get請求方式時請求接口返還中文亂碼,設置content-type嘗試解決時,發現不起做用,查了一些資料發現get請求時,axios內部在判斷get請求時給刪掉了ios
/ Add headers to the request if ('setRequestHeader' in request) { utils.forEach(requestHeaders, function setRequestHeader(val, key) { if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { // Remove Content-Type if data is undefined delete requestHeaders[key]; } else { // Otherwise add header to the request request.setRequestHeader(key, val); } }); }
給出的解決方法是爲data 賦值以免axios給刪除掉,以下:axios
// http request 攔截器 axios.interceptors.request.use( (config) => { config.params = config.params || {} if (!config.params._v) { // eslint-disable-line config.params._v = String(Math.random()).slice(0, 10) // eslint-disable-line } if (typeof window === 'undefined') { config.url = config.url.replace(/^https/, 'http') } if (config.method === 'get') { config.data = true } config.headers = { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', } return config }, error => Promise.reject(error) )
雖然成功設置了請求頭,可是中文亂碼暫未解決。最後,使用自定義方法transformResponse暫時解決,若有更好的解決方式煩請留言,謝謝。app