首頁 >web前端 >uni-app >uniapp requrst怎麼設定公共頭(兩種方法)

uniapp requrst怎麼設定公共頭(兩種方法)

PHPz
PHPz原創
2023-04-17 10:30:271740瀏覽

在開發過程中,我們常會用UniApp來建立跨平台的應用程式。 UniApp是一個基於Vue.js的開源框架,它能夠將Vue.js的核心和一些跨平台的能力打包在一起,提供了一套完整的開發體驗。而在開發過程中,我們常常會需要發送網路請求來取得數據,此時,我們就需要設定一些公共頭部參數,以此來保障請求的準確、有效。

UniApp中,我們可以使用封裝好的uni.request來傳送網路請求。 uni.request具有很好的跨平台效能,在UniApp中封裝了原生的XMLHttpRequest和原生的axios擴展,可以用於發起HTTP/HTTPS請求。而對於設定公共頭部參數,有以下兩種常用方法。

方法一:在request的options中設定

// main.js
Vue.prototype.$http = function (url, data, method) {
  let token = uni.getStorageSync('token');
  let header = {
    'Authorization': token,
    'Content-type': 'application/json'
  };
  return uni.request({
    url,
    data,
    method,
    header
  })
}

// 调用
this.$http('/api/user', { id: 123, name: 'Tom' }, 'GET').then(res => {
  console.log(res)
})

其中,在main.js中定義了$ttp方法,在options中設定了公共頭部參數,呼叫時傳入具體的參數即可。

方法二:透過攔截器統一設定

// request.js
export function request(opts) {
  let token = uni.getStorageSync('token');
  let header = {
    'Authorization': token,
    'Content-type': 'application/json'
  };
  const interceptor = {
    request: (opts) => {
      opts.header = header;
      return opts;
    },
    response: (res) => {
      const { statusCode, data } = res;
      if (statusCode === 200) {
        return data;
      } else {
        uni.showToast({
          title: '请求失败',
          icon: 'none'
        })
        return Promise.reject(res);
      }
    }
  }
  uni.addInterceptor(interceptor);
  return uni.request(opts).finally(() => {
    uni.removeInterceptor(interceptor);
  })
}

// 调用
request({
  url: '/api/user?id=123&name=Tom',
  method: 'GET'
}).then(res => {
  console.log(res);
})

在此方法中,我們定義了一個request函數,在函數中透過攔截器攔截請求並設定公共頭部參數,然後透過uni.request來發起請求。呼叫request時,只需要傳入具體的參數即可。

綜上所述,我們可以看到,UniApp設定公共頭部參數的方法並不難,只需要在uni.request的options中設定即可,也可以透過攔截器統一設定,這樣可以提高程式碼的複用性,減少重複程式碼的編寫,是一個不錯的選擇。

以上是uniapp requrst怎麼設定公共頭(兩種方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn