美文网首页Vue驿站前端Vue专辑
使用axios解决跨域、显示mooc数据(正确版)

使用axios解决跨域、显示mooc数据(正确版)

作者: edisonTechBlog | 来源:发表于2020-02-26 23:16 被阅读0次

    天杀的 vue cli 4 。一晚上就弄这个了~~~~。之前的错误版该说的都说了,这次直接贴正确代码。不过有几点要先说。

    1.首先,不懂的一定要先看vue.config.js配置的官网:https://cli.vuejs.org/zh/config/#devserver-proxy
    2.之前在vue cli 2中,显示mooc和打印mooc都是在vue组件中写的,但是现在是直接在这个配置文件中写。
    3.还有一些话写在了代码里

    vue只看关键部分

        methods:{
            getHomeInfo(){
                //首先 访问8080, axios去请求这么一个路径  
                //接下来,这个路径会到 vue.config.js中
                axios.get("/api/index.json").then(this.getHomeInfoSucc)
            },
            getHomeInfoSucc(res){
                //这里可以在控制台中打印
                console.log(res)
            }
        },
        mounted(){
            this.getHomeInfo()
        }
    

    接下来是重头戏:vue.config.js

    const path = require('path');
    const mockdata=require("./mock/index.json")
    
    function resolve(dir) {
        return path.join(__dirname, dir);
    }
    
    
    module.exports = {
        lintOnSave: true,
        chainWebpack: (config) => {
            config.resolve.alias
            .set('styles',resolve('src/assets/styles'))
            // 这里只写了两个个,你可以自己再加,按这种格式.set('', resolve(''))
        },
        devServer:{
            //当Home.vue中的路径过来时,/api/index.json   因为是api开头,
            //所以这个路径被跨域到 http://localhost:8080/mock/index.json 
            //即实际上访问8080时,访问的是http://localhost:8080/mock/index.json
            //这样就拿到了mooc的数据。
            //拿到之后,就回到vue开始执行then。   
            //到此结束!!!!
            proxy: {
                '/api': {
                    target: 'http://localhost:8080',
                    pathRewrite:{
                        '^/api':'/mock'
                    }
                },
                '/foo': {
                target: 'http://localhost:8080'
                }
            },
            //用来显示假数据,即如果直接访问 http://localhost:8080/api/index.json
            //就会在页面打印mock数据
            port:8080,
            before(app){
                app.get('/api/index.json',(req,res,next)=>{
                    res.json(mockdata)
                })
            }
        }
    };
    

    相关文章

      网友评论

        本文标题:使用axios解决跨域、显示mooc数据(正确版)

        本文链接:https://www.haomeiwen.com/subject/rmigchtx.html