吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 510|回复: 26
收起左侧

[已解决] vue-antd-pro改我的后端地址不生效

 关闭 [复制链接]
墙边等红杏 发表于 2023-12-11 14:18
本帖最后由 墙边等红杏 于 2023-12-11 16:47 编辑

环境:vue-antd-pro-3.0.4
vue2


目前使用proxy改我的后端api,点击登录F12  network有请求信息且请求成功200


但是vue页面中login请求的then不执行,反而catch执行了


在线预览 Login.vue:https://github1s.com/vueComponent/ant-design-vue-pro/blob/HEAD/src/views/user/Login.vue


request.js:https://github1s.com/vueComponent/ant-design-vue-pro/blob/HEAD/src/utils/request.js

request.js第57行 return response.data    是有值的


路过的大佬看看




发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

joted 发表于 2023-12-11 16:24
本帖最后由 joted 于 2023-12-11 16:29 编辑
墙边等红杏 发表于 2023-12-11 16:22
这个替换在login.vue登录事件中吗

login.vue调用了vuex的login,vuex调用了api里面的login ,格式错误,返回出来有问题就直接到catch了
Snipaste_2023-12-11_16-28-56.png

免费评分

参与人数 1热心值 +1 收起 理由
墙边等红杏 + 1 谢谢@Thanks!

查看全部评分

QvQsuipian 发表于 2023-12-11 14:31
本帖最后由 QvQsuipian 于 2023-12-11 14:33 编辑

出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行,而是直接跳到了catch函数中。

你可以在catch函数中打印出错误信息来排查问题:

[Asm] 纯文本查看 复制代码
.catch((error) => {
  console.log(error);
});


在控制台中查看输出的错误信息,看看是否有更多的提示信息可以帮助你解决问题。

如果错误信息并不明确,你可以尝试在request.js文件中添加一些调试代码来查看请求和响应的详细信息:

[JavaScript] 纯文本查看 复制代码
console.log(`Request url: ${config.url}`);
console.log(`Request method: ${config.method}`);
console.log(`Request headers: ${JSON.stringify(config.headers)}`);
console.log(`Request data: ${JSON.stringify(config.data)}`);

return instance(config).then((response) => {
  console.log(`Response data: ${JSON.stringify(response.data)}`);
  return response.data;
});


这样做可以让你更清楚地了解请求和响应的细节,找到问题所在。

此外,还要确保后端API返回的响应数据是一个包含正确格式的JSON对象,例如:

[JavaScript] 纯文本查看 复制代码
{
  "code": 0,
  "data": {
    "token": "xxxx"
  },
  "message": "登录成功"
}


其中`code`表示请求状态码,`data`表示响应数据,`message`表示响应消息。如果响应数据格式不正确,那么前端页面就无法正常解析响应数据,导致then函数没有正常执行。
 楼主| 墙边等红杏 发表于 2023-12-11 14:40
QvQsuipian 发表于 2023-12-11 14:31
出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行, ...

catch的error打印出来就是network请求信息,返回的json数组code,data,msg这些,正常情况这些是success的res内容,但是出现在catch中了
 楼主| 墙边等红杏 发表于 2023-12-11 14:42
QvQsuipian 发表于 2023-12-11 14:31
出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行, ...

image.png
PEKING1 发表于 2023-12-11 14:50
你请求的时候看看控制台network页面的请求状态
 楼主| 墙边等红杏 发表于 2023-12-11 14:51
PEKING1 发表于 2023-12-11 14:50
你请求的时候看看控制台network页面的请求状态

是正常的,有请求信息,返回码都是200
tomliu 发表于 2023-12-11 14:54
修改配置, 前端项目重启才能彻底生效
 楼主| 墙边等红杏 发表于 2023-12-11 14:55
tomliu 发表于 2023-12-11 14:54
修改配置, 前端项目重启才能彻底生效

请问是哪里的配置,百度ChatGPT都问编了也没找到
PEKING1 发表于 2023-12-11 14:57
Login(loginParams)
            .then((res) => this.loginSuccess(res))
            .catch(err => this.requestFailed(err))
            .finally(() => {
              state.loginBtn = false
            })登录是这个逻辑吗?你打印一下res,先把vue项目停掉在重启下看看
 楼主| 墙边等红杏 发表于 2023-12-11 15:00
PEKING1 发表于 2023-12-11 14:57
Login(loginParams)
            .then((res) => this.loginSuccess(res))
            .catch(err => th ...

then里面的代码都不会触发,我百度看了下说是拦截器的问题,但是我该注释的都注释了也不行,我改的这样:
6666666根本不会打印
[Asm] 纯文本查看 复制代码
   Login(loginParams)
            .then((res) => {
              console.log(66666666666)
              this.loginSuccess(res)
            }).catch(err => this.requestFailed(err))
            .finally(() => {
              state.loginBtn = false
            })
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 15:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表