axios get請求方式設置content-type

在使用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

相關文章
相關標籤/搜索