当前位置: 代码迷 >> 综合 >> mock.js请求报404
  详细解决方案

mock.js请求报404

热度:25   发布时间:2023-12-22 10:04:12.0

如果没有在main.js中引入 import “./mock/index” ,就会显示如上图这种情况

如下是mock.js简单的用法
npm install mockjs --save-dev
注意:若是没有安装axios,需 npm install axios --save

// mock/index.js
import Mock from "mockjs"; // 引入mockjs
const Random = Mock.Random; // Mock.Random 是一个工具类,用于生成各种随机数据
let data = []; // 用于接受生成数据的数组
for (let i = 0; i < 10; i++) {
    // 可自定义生成的个数let template = {
    name: Random.name(), // 生成地址,string: Random.string(2, 10), // 生成2到10个字符之间的字符串date: Random.date() // 生成一个随机日期,可加参数定义日期格式};data.push(template);
}
Mock.mock("/data/index", "post", data); // 根据数据模板生成模拟数据

文件位置根据自己情况定

// axios.js 
import axios from "axios";
axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded";
// 请求拦截器
axios.interceptors.request.use(function(config) {
    return config;},function(error) {
    return Promise.reject(error);}
);
// 响应拦截器
axios.interceptors.response.use(function(response) {
    return response;},function(error) {
    return Promise.reject(error);}
);
//services/global.js"
import axios from "axios";
// 封装axios的post请求
export function fetch(url, params) {
    return new Promise((resolve, reject) => {
    axios.post(url, params).then(response => {
    resolve(response.data);}).catch(error => {
    reject(error);});});
}
export default {
    mockdata(url, params) {
    return fetch(url, params);}
};
// main.js
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import "./config/element";
//也可以在所用的页面引入,若是没有引入,就是报404
import "./mock/index";Vue.config.productionTip = false;new Vue({
    router,store,render: h => h(App)
}).$mount("#app");
<template><div><el-button type="primary" @click="submit">保存</el-button>   </div>
</template>
<script>
//import "@/mock/index"; 当前页面或main.js引用
import api from "@/services/global.js";
export default {
    methods: {
    submit() {
    api.mockdata("/data/index").then(res => {
    console.log(res);}); }}
};
</script>

最终效果如下:
在这里插入图片描述