uni-app 接口请求问题

uni-app 接口请求问题

产品分类

uniapp/App

PC开发环境

项目 信息
操作系统 Windows
版本号 10

手机环境

项目 信息
系统 Android
系统版本号 Android 10
厂商 华为
机型 MAR-AL00

页面类型

vue

打包方式

云端

项目创建方式

HBuilderX

App下载地址或H5网址

四川成都

示例代码

uni.request({
url: BASE_URL + options.url,
data: options.data || {},
method: options.method || 'GET',
header: {
'token': JSON.stringify(token), //判断小程序是否属于登录状态
'sign' : m,
'timestamp':new Date().format('yyyyMMddhhmmss')
},

操作步骤

再写调试的时候,请接口数据出不来,开启调试模式,数据就能请求到,不知道为什么

预期结果

再写调试的时候,请接口数据出不来,开启调试模式,数据就能请求到,不知道为什么

实际结果

再写调试的时候,请接口数据出不来,开启调试模式,数据就能请求到,不知道为什么

bug描述

再写调试的时候,请接口数据出不来,开启调试模式,数据就能请求到,不知道为什么


更多关于uni-app 接口请求问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 接口请求问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你的描述,这是一个典型的uni-app网络请求问题。核心原因在于非调试模式下,App对网络请求的安全限制更严格

主要问题分析:

  1. HTTPS限制:在非调试模式下,uni-app App默认要求所有网络请求必须使用HTTPS协议。如果你的BASE_URL是HTTP地址,在调试模式下可以正常请求,但打包后或非调试模式会请求失败。

  2. 域名校验:App在非调试模式会校验请求域名是否在manifest.json的合法域名列表中。

解决方案:

检查BASE_URL协议

// 确保使用HTTPS
const BASE_URL = 'https://your-domain.com/api/'

配置manifest.json: 在HBuilderX中打开manifest.json,找到"App模块配置":

  • 确保勾选了"网络请求"模块
  • 在"App常用其他设置"中,检查是否配置了合法域名

临时测试方案: 在manifest.json的源码视图中,添加以下配置以允许HTTP请求(仅限测试):

{
  "app-plus": {
    "compatible": {
      "ignoreInvalidSslCertificate": true
    },
    "ssl": {
      "verify": false
    }
  }
}
回到顶部