uni.request(OBJECT)
發起網絡請求。
OBJECT 參數說明
參數名 | 類型 | 必填 | 默認值 | 說明 | 平台差異說明 |
---|---|---|---|---|---|
url | String | 是 | 開發者服務器接口地址 | ||
data | Object/String/ArrayBuffer | 否 | 請求的參數 | App(自定義組件編譯模式)不支持ArrayBuffer類型 | |
header | Object | 否 | 設置請求的 header,header 中不能設置 Referer。 | H5端會自動帶上cookie不可手動覆蓋 | |
method | String | 否 | GET | 有效值詳見下方說明 | |
timeout | Number | 否 | 30000 | 超時時間,單位 ms | 微信小程序(2.10.0)、支付寶小程序 |
dataType | String | 否 | json | 如果設為 json,會嘗試對返回的數據做一次 JSON.parse | |
responseType | String | 否 | text | 設置響應的數據類型。合法值:text、arraybuffer | App和支付寶小程序不支持 |
sslVerify | Boolean | 否 | true | 驗證 ssl 證書 | 僅App安卓端支持(HBuilderX 2.3.3+) |
withCredentials | Boolean | 否 | false | 跨域請求時是否攜帶憑證(cookies) | 僅H5支持(HBuilderX 2.6.15+) |
firstIpv4 | Boolean | 否 | false | DNS解析時優先使用ipv4 | 僅 App-Android 支持 (HBuilderX 2.8.0+) |
success | Function | 否 | 收到開發者服務器成功返回的回調函數 | ||
fail | Function | 否 | 接口調用失敗的回調函數 | ||
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
success 返回參數說明
參數 | 類型 | 說明 |
---|---|---|
data | Object/String/ArrayBuffer | 開發者服務器返回的數據 |
statusCode | Number | 開發者服務器返回的 HTTP 狀態碼 |
header | Object | 開發者服務器返回的 HTTP Response Header |
data 數據說明
最終發送給服務器的數據是 String 類型,如果傳入的 data 不是 String 類型,會被轉換成 String。轉換規則如下:
- 對於
GET
方法,會將數據轉換為 query string。例如{ name: 'name', age: 18 }
轉換后的結果是name=name&age=18
。 - 對於
POST
方法且header['content-type']
為application/json
的數據,會進行 JSON 序列化。 - 對於
POST
方法且header['content-type']
為application/x-www-form-urlencoded
的數據,會將數據轉換為 query string。
示例
uni.request({ url: 'https://www.example.com/request', //僅為示例,並非真實接口地址。 data: { text: 'uni.request' }, header: { 'custom-header': 'hello' //自定義請求頭信息 }, success: (res) => { console.log(res.data); this.text = 'request success'; } });
config: { baseUrl: "https://www.baidu.com/", header: { 'Content-Type': 'application/json;charset=UTF-8', 'Content-Type': 'application/x-www-form-urlencoded', }, data: {}, method: "GET", dataType: "json", /* 如設為json,會對返回的數據做一次 JSON.parse */ responseType: "text", success() {}, fail() {}, complete() {} },