uni-app 【报Bug】uni.request 发起后台请求时多了一个localhost的链接,这是怎么回事?是哪里配置加多了东西吗

uni-app 【报Bug】uni.request 发起后台请求时多了一个localhost的链接,这是怎么回事?是哪里配置加多了东西吗

开发环境 版本号 项目创建方式
HBuilderX 3.3.2

产品分类:HbuilderX

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:window10 家庭版

App下载地址或H5网址:1

示例代码:

"h5" : {
"title" : "会员中心",
"template" : "",
"domain" : "localhost",
"router" : {
"mode" : "hash",
"base" : "./"
},
"publicPath" : "./",
"devServer" : {
"disableHostCheck" : true, //禁止访问本地host文件
"https" : false,
"port" : 8800,
"proxy" : {
"/api" : {
"target" : "http://192.168.100.6:8800", //  
"changeOrigin" : true, //是否跨域  
"secure" : false, // 是否支持 https 协议的代理  
"ws" : false,
"pathRewrite" : {
"^/api" : ""
}
}
},
"port" : 8800,
"https" : false
}

操作步骤:

POST http://localhost:8803/192.168.100.6:8800/client/user/doLogin net::ERR_CONNECTION_REFUSED

执行过打包操作

预期结果:

1

实际结果:

1

bug描述:

POST http://localhost:8803/192.168.100.6:8800/client/user/doLogin net::ERR_CONNECTION_REFUSED

更多关于uni-app 【报Bug】uni.request 发起后台请求时多了一个localhost的链接,这是怎么回事?是哪里配置加多了东西吗的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 【报Bug】uni.request 发起后台请求时多了一个localhost的链接,这是怎么回事?是哪里配置加多了东西吗的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的配置和错误信息,问题出在代理配置上。

在你的 manifest.jsonh5.devServer.proxy 配置中,你设置了:

"/api": {
  "target": "http://192.168.100.6:8800",
  "pathRewrite": {
    "^/api": ""
  }
}

但实际请求的 URL 显示为 http://localhost:8803/192.168.100.6:8800/client/user/doLogin,这说明代理没有正确工作,请求路径被错误拼接了。

问题分析:

  1. 你的代理配置端口是 8800,但错误信息显示请求发往了 localhost:8803
  2. 目标地址 192.168.100.6:8800 被直接拼接到了 localhost 后面,形成了错误的 URL

解决方案:

检查你的 uni.request 调用代码。很可能是你在请求时手动拼接了完整 URL,而不是使用相对路径。

正确做法:

// 错误示例(可能导致问题):
uni.request({
  url: 'http://192.168.100.6:8800/client/user/doLogin',
  // ...
})

// 正确示例(使用代理):
uni.request({
  url: '/api/client/user/doLogin',  // 使用 /api 前缀触发代理
  // ...
})
回到顶部