Error: Error at ./src/utils/request.js._default(request.js:79)

在使用vue-admin-template的封装Axios时,后端返回的response应该是{code,data,message}类型的,而不是单纯的一个对象数组

报错:

Error: Error at ./src/utils/request.js._default(request.js:79)_第1张图片

后端创建一个AjaxResult类即可:


import lombok.experimental.Accessors;

import java.util.HashMap;

/**
 * @author LZY
 * @version 1.0
 * @date 2020/5/16 22:30
 */
@Accessors(chain = true)
public class AjaxResult extends HashMap {
    private static final long serialVersionUID = 1L;

    public static final String CODE_TAG = "code";

    public static final String message_TAG = "message";

    public static final String DATA_TAG = "data";


    /**
     * 状态类型
     */
    public enum Type {
        /**
         * 成功,2000和前端保持一致
         */
        SUCCESS(20000),
        /**
         * 失败
         */
        FAIL(-1),
        /**
         * 警告
         */
        WARN(301),

        // 401:没有提供认证信息。请求的时候没有带上 Token 等
        UNAUTHORIZED(401),

        /**
         * 错误
         */
        ERROR(500);
        private final int value;

        Type(int value) {
            this.value = value;
        }

        public int value() {
            return this.value;
        }
    }

    /**
     * 状态类型
     */
    private Type type;

    /**
     * 状态码
     */
    private int code;

    /**
     * 返回内容
     */
    private String message;

    /**
     * 数据对象
     */
    private Object data;


    /**
     * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
     */
    public AjaxResult() {
    }

    /**
     * 初始化一个新创建的 AjaxResult 对象
     *
     * @param type    状态类型
     * @param message 返回内容
     */
    public AjaxResult(Type type, String message) {
        super.put(CODE_TAG, type.value);
        super.put(message_TAG, message);
    }

    /**
     * 初始化一个新创建的 AjaxResult 对象
     *
     * @param type    状态类型
     * @param message 返回内容
     * @param data    数据对象
     */
    public AjaxResult(Type type, String message, Object data) {
        super.put(CODE_TAG, type.value);
        super.put(message_TAG, message);
        super.put(DATA_TAG, data);
    }

    /**
     * 返回成功消息
     *
     * @return 成功消息
     */
    public static AjaxResult success() {
        return AjaxResult.success("操作成功");
    }

    /**
     * 返回成功消息
     *
     * @param message 返回内容
     * @return 成功消息
     */
    public static AjaxResult success(String message) {
        return AjaxResult.success(message, null);
    }

    /**
     * 返回成功消息
     *
     * @param message 返回内容
     * @param data    数据对象
     * @return 成功消息
     */
    public static AjaxResult success(String message, Object data) {
        return new AjaxResult(Type.SUCCESS, message, data);
    }

    /**
     * 返回失败消息
     *
     * @return 成功消息
     */
    public static AjaxResult fail() {
        return AjaxResult.fail("操作失败");
    }

    /**
     * 返回失败消息
     *
     * @param message 返回内容
     * @return 成功消息
     */
    public static AjaxResult fail(String message) {
        return AjaxResult.fail(message, null);
    }

    /**
     * 返回失败消息
     *
     * @param message 返回内容
     * @param data    数据对象
     * @return 成功消息
     */
    public static AjaxResult fail(String message, Object data) {
        return new AjaxResult(Type.FAIL, message, data);
    }

    /**
     * 返回警告消息
     *
     * @param message 返回内容
     * @return 警告消息
     */
    public static AjaxResult warn(String message) {
        return AjaxResult.warn(message, null);
    }

    /**
     * 返回警告消息
     *
     * @param message 返回内容
     * @param data    数据对象
     * @return 警告消息
     */
    public static AjaxResult warn(String message, Object data) {
        return new AjaxResult(Type.WARN, message, data);
    }

    /**
     * 返回错误消息
     *
     * @return
     */
    public static AjaxResult error() {
        return AjaxResult.error("操作失败");
    }

    /**
     * 返回错误消息
     *
     * @param message 返回内容
     * @return 警告消息
     */
    public static AjaxResult error(String message) {
        return AjaxResult.error(message, null);
    }

    /**
     * 返回错误消息
     *
     * @param message 返回内容
     * @param data    数据对象
     * @return 警告消息
     */
    public static AjaxResult error(String message, Object data) {
        return new AjaxResult(Type.ERROR, message, data);
    }

    public static AjaxResult error(int code, String message) {
        return new AjaxResult(Type.UNAUTHORIZED, message);
    }


    public Type getType() {
        return type;
    }

    public void setType(Type type) {
        this.type = type;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getmessage() {
        return message;
    }

    public void setmessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}

Controller类返回值改为即可:

return success( "成功", list);

你可能感兴趣的:(vue)