美文网首页
【webpack】解决axios跨域

【webpack】解决axios跨域

作者: u5f20u5929u8000 | 来源:发表于2019-03-25 11:58 被阅读0次
    1、通过NPM安装http-proxy-middleware模块:

    npm install --save-dev http-proxy-middleware

    2、webpack配置http-proxy-middleware模块:
    // webpack.config.js
    //...
    const proxy = require('http-proxy-middleware');
    
    const config = {
      devServer:{
            host: '本地IP',
            port: 8080,  //启动该项目的端口号
            proxy:{
                '/api':{
                    target: '访问后端IP:端口号',
                    changeOrigin: true,
                    pathRewrite: {
                        '^/api': '/'
                    }
                }
            }
        },
      entry: {
            main: './main'
      },
      //...
    };
    
    module.exports = config;
    
    3、axios配置:

    axios是基于Promise的HTTP库,同时支持前端和Node.js。
    a)首先用NPM安装axios:
    npm install axios --save
    b)在项目根目录下创建libs文件夹,并在libs下新建util.js文件,项目中使用的工具函数可以在这里封装。例如axios的封装:

    // axios.js
    import axios from 'axios';
    
    // 基本配置
    const Util = {
        imgPath: '',
        apiPath: '/api'
    };
    
    // Ajax通用配置
    Util.ajax = axios.create({
        baseURL: Util.apiPath
    });
    
    // 添加响应拦截器
    Util.ajax.interceptors.response.use(res => {
        return res.data;
    });
    
    export default Util;
    
    4、调用axios请求API:
    //导入util.js文件
    import $ from './../libs/util.js';
    //GET请求:
    $.ajax({
            url: url,  //url为请求的接口
            method: 'GET',
            params: params  //接口连接带的参数,没有可以为null
        }).then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        });
    
    //POST请求:
    $.ajax({
            url: url,  //url为请求的接口
            method: 'POST',
            data: data  //post请求所需的数据
        }).then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        });
    

    相关文章

      网友评论

          本文标题:【webpack】解决axios跨域

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