vue-element-admin 与服务器端数据交互出现问题。

rjzwgtxy  于 4个月前  发布在  其他
关注(0)|答案(4)|浏览(95)

错误提示:
Uncaught (in promise) Error: Error
at ./src/utils/request.js._default

按教程手册中的范例,提交到后端服务器,后端已经输出数据,但是提示如上错误。这是哪里的问题呢?

export function getList(query) {
    return request({
        baseURL: 'http://localhost:8080',
        url: '/url/',
        method: 'get',
        params: query
    })
}

参考了范例

// api/article.js
import request from '../utils/request';
export function fetchList(query) {
  return request({
    url: '/article/list',
    method: 'get',
    params: query
  })
}

// views/example/list
import { fetchList } from '@/api/article'
export default {
  data() {
    list: null,
    listLoading: true
  },
  methods: {
    fetchData() {
      this.listLoading = true
      fetchList().then(response => {
        this.list = response.data.items
        this.listLoading = false
      })
    }
  }
}
rvpgvaaj

rvpgvaaj1#

谢谢你的问题,让我找到了解决方法。由于作者在 request 中接口code 如果非 20000 则Promise reject 掉了结果,尽管已经返回了正确数据!!!所以需要修改下,解决方法如下:
src/utils/request.js 中的
vue-element-admin/src/utils/request.js

Line 49 in f7a9d21

| | if(res.code!==20000){ |
改为你正常情况下的 code 值就可以正常返回数据了,比如我的改成 if (res.code !== 200)

7fyelxc5

7fyelxc52#

您好,但是但我将改成if (res.code !== 200)后,就直接无法进入页面了,点击login会出现error,
我怀疑是因为官方的login页面返回的code值为20000,但是我改成了if (res.code !== 20000 && res.code !== 200)依然不行

xggvc2p6

xggvc2p63#

您好,但是但我将改成if (res.code !== 200)后,就直接无法进入页面了,点击login会出现error,
我怀疑是因为官方的login页面返回的code值为20000,但是我改成了if (res.code !== 20000 && res.code !== 200)依然不行

  1. 首先确定是的是不是 custom code
  2. 根据一楼错误截图确认是相同的问题
  3. 若 1 则确认自己的 code 是多少
voj3qocg

voj3qocg4#

您好,但是但我将改成if (res.code !== 200)后,就直接无法进入页面了,点击login会出现error,
我怀疑是因为官方的login页面返回的code值为20000,但是我改成了if (res.code !== 20000 && res.code !== 200)依然不行

  1. 首先确定是的是不是 custom code
  2. 根据一楼错误截图确认是相同的问题
  3. 若 1 则确认自己的 code 是多少

问题解决了,因为我的后端写的过于简陋,我的response.code是没有定义的,所以不行,可以在request那里进行alert展示你自己的code,这里的code不是状态码。
非常感谢

相关问题