vue-antd-pro改我的后端地址不生效
本帖最后由 墙边等红杏 于 2023-12-11 16:47 编辑环境:vue-antd-pro-3.0.4
vue2
目前使用proxy改我的后端api,点击登录F12network有请求信息且请求成功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 是有值的
路过的大佬看看
https://attach.52pojie.cn/forum/202312/11/144204vh0aq2ih2520kt5a.png 本帖最后由 joted 于 2023-12-11 16:29 编辑
墙边等红杏 发表于 2023-12-11 16:22
这个替换在login.vue登录事件中吗
login.vue调用了vuex的login,vuex调用了api里面的login ,格式错误,返回出来有问题就直接到catch了
本帖最后由 QvQsuipian 于 2023-12-11 14:33 编辑
出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行,而是直接跳到了catch函数中。
你可以在catch函数中打印出错误信息来排查问题:
.catch((error) => {
console.log(error);
});
在控制台中查看输出的错误信息,看看是否有更多的提示信息可以帮助你解决问题。
如果错误信息并不明确,你可以尝试在request.js文件中添加一些调试代码来查看请求和响应的详细信息:
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对象,例如:
{
"code": 0,
"data": {
"token": "xxxx"
},
"message": "登录成功"
}
其中`code`表示请求状态码,`data`表示响应数据,`message`表示响应消息。如果响应数据格式不正确,那么前端页面就无法正常解析响应数据,导致then函数没有正常执行。 QvQsuipian 发表于 2023-12-11 14:31
出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行, ...
catch的error打印出来就是network请求信息,返回的json数组code,data,msg这些,正常情况这些是success的res内容,但是出现在catch中了 QvQsuipian 发表于 2023-12-11 14:31
出现这种情况的原因可能是因为登录请求返回的响应数据格式不正确,导致vue页面中的then函数没有正常执行, ...
你请求的时候看看控制台network页面的请求状态 PEKING1 发表于 2023-12-11 14:50
你请求的时候看看控制台network页面的请求状态
是正常的,有请求信息,返回码都是200 修改配置, 前端项目重启才能彻底生效 tomliu 发表于 2023-12-11 14:54
修改配置, 前端项目重启才能彻底生效
请问是哪里的配置,百度ChatGPT都问编了也没找到 Login(loginParams)
.then((res) => this.loginSuccess(res))
.catch(err => this.requestFailed(err))
.finally(() => {
state.loginBtn = false
})登录是这个逻辑吗?你打印一下res,先把vue项目停掉在重启下看看
PEKING1 发表于 2023-12-11 14:57
Login(loginParams)
.then((res) => this.loginSuccess(res))
.catch(err => th ...
then里面的代码都不会触发,我百度看了下说是拦截器的问题,但是我该注释的都注释了也不行,我改的这样:
6666666根本不会打印
Login(loginParams)
.then((res) => {
console.log(66666666666)
this.loginSuccess(res)
}).catch(err => this.requestFailed(err))
.finally(() => {
state.loginBtn = false
})