HBuilder X v4.66 當前最新版本
由于 uniapp x 使用的是自己包裝的 ts 語言 uts。目前語言還沒有穩定下來,各種不支持 ts 各種報錯各種不兼容問題。我一個個問題調通的,代碼如下:
封裝方法
// my-app/utils/request.uts
const UNI_APP_BASE_URL = "http://192.168.1.1:8080" // 開發環境
// const UNI_APP_BASE_URL = "http://test.com" // 測試環境
// const UNI_APP_BASE_URL = "http://pro.com" // 正式環境type JsonResult = {code : number; // 狀態碼data ?: any; // 返回數據msg ?: string; // 返回消息
}export function get(uri : string, data : any = {}) : Promise<JsonResult> {const url = UNI_APP_BASE_URL + uri;return new Promise((resolve, reject) => {uni.request<JsonResult>({url,method: "GET",data,success: (response) => {const jsonResult = response.dataif (jsonResult != null) {if (jsonResult.code != 0) {uni.showToast({ title: jsonResult.msg ?? "出錯了", icon: 'none' })}resolve(jsonResult);}}, fail: (err) => {console.error("錯誤信息:", err)uni.showToast({ title: "app 錯誤 " + err.errMsg, icon: 'none' })reject(err);}})})
}export function post(uri : string, data : any = {}) : Promise<JsonResult> {const url = UNI_APP_BASE_URL + uri;return new Promise((resolve, reject) => {uni.request<JsonResult>({url,method: "POST",data,success: (response) => {const jsonResult = response.dataif (jsonResult != null) {if (jsonResult.code != 0) {uni.showToast({ title: jsonResult.msg ?? "出錯了", icon: 'none' })}resolve(jsonResult);}}, fail: (err) => {console.error("錯誤信息:", err)uni.showToast({ title: "app 錯誤 " + err.errMsg, icon: 'none' })reject(err);}})})
}
如下使用:
<script setup lang="uts">import { post } from '@/utils/request.uts';async function login() {try {const jsonResult = await post("/login", { mobile: "11111111111", code: "111111", grantType: "sms" });console.log("請求返回數據:", jsonResult);} catch (err) {console.error("請求失敗:", err);}}login();
</script>