Vue项目搭建常用的配置文件,request.js和vue.config.js_interceptors.request.use 没有config-程序员宅基地

技术标签: 前端  vue.js  javascript  

1. 前端跨域解决方案

request.js用来请求数据,封装的代码如下:

import axios from 'axios'

const request = axios.create({
    
	baseURL: '/api',  // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!!
    timeout: 5000
})

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
  
 // config.headers['token'] = user.token;  // 设置请求头
    return config
}, error => {
    
    return Promise.reject(error)
});

// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
    
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
    
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
    
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
    
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)


export default request

vue.config.js:

// 跨域配置
module.exports = {
    
    devServer: {
                    //记住,别写错了devServer//设置本地默认端口  选填
        port: 9876,
        proxy: {
                     //设置代理,必须填
            '/api': {
                  //设置拦截器  拦截器格式   斜杠+拦截器名字,名字可以自己定
                target: 'http://localhost:9999',     //代理的目标地址
                changeOrigin: true,              //是否设置同源,输入是的
                pathRewrite: {
                       //路径重写
                    '^/api': ''                     //选择忽略拦截器里面的内容
                }
            }
        }
    }
}

2. 后端跨域解决方案

如果后端设置了跨域配置,则使用下面的request.js 代码:

import axios from 'axios'

const request = axios.create({
    
	baseURL: 'http://localhost:9090',  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 5000
})

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
  
 // config.headers['token'] = user.token;  // 设置请求头
    return config
}, error => {
    
    return Promise.reject(error)
});

// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
    
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
    
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
    
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
    
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)


export default request

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xqnode/article/details/118325868

智能推荐

导出离线文档_接口文档是该前端定义还是后端定义?-程序员宅基地

文章浏览阅读752次。朋友公司新项目,他负责后端开发,因为之前做过全栈的项目,基本前后台思路都门清,就自己把逻辑走通写了api接口,新招了个ios过来说他写的接口不行,就干了一架。那么接口文档到底是该谁来定义呢?接口是什么?API,全称是ApplicationProgramming Interface,即应用程序编程接口,我们日常中习惯简称为“接口”。接口是一些预先定义的函数,目的是提供应用程序与开发人员基于..._接口文档前端写还是后端写

获取web摄像头视频,并在网页上展示(ffmpeg+rstp+node)|| #网页无插件播放RTSP流媒体#_网页如何取监控的视频流-程序员宅基地

文章浏览阅读1.5k次。零、原理1、使用ffmpeg工具拉流、解码转码、推流2、使用node向前端发送数据帧3、前端页面引入jsmpeg.js,将接收的数据帧,实时的在canvas中绘制成画面一、下载相关组件1、下载node2、下载ffmpeg3、下载node-rtsp-stream需要的软件已上传到百度云:需要的软件压缩包(百度云)解压码:qwer二、安装参考:网页无插件播放RTSP流媒体三、设置环境变量1、node环境变量是安装好后自动生成的,所以不用设置了2、ffmpeg的环境变量设置在 其bi_网页如何取监控的视频流

利用Python scipy.signal.filtfilt() 实现信号滤波_python filtfilt-程序员宅基地

文章浏览阅读4k次,点赞9次,收藏50次。在使用Python进行信号处理过程中,利用 scipy.signal.filtfilt()可以快速帮助实现信号的滤波。1.函数的介绍(1).滤波函数scipy.signal.filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None, method='pad', irlen=None)输入参数:b: 滤波器的分子系数向量a: 滤波器的分母系数向量x: 要过滤的数据数组。(array型)axis: 指定要过滤的数据数组x的轴padtype: 必_python filtfilt

N皇后问题解法及解的个数_n皇后问题答案个数-程序员宅基地

文章浏览阅读3.4w次,点赞17次,收藏66次。1、将第一个皇后放置在第一行的第一个空格里 2、对于第二行,从第一个空格开始寻找不与第一行的皇后冲突的空格。找到的第一个不冲突的空格是第2个。 3、对于第三行,这时已经找不到与之前放置的两个皇后不冲突的空格了。把当前行恢复初始状态,返回到上一行。 4、在当前行皇后所占的空格之后寻找一个不与之前皇后冲突的位置。有两种情况,如果找打了则把当前行的皇后移动到该位置,然后处理下一行。如果直到最后当前行的最后一个空格也没有找合适的位置,则把当前行恢复初始状态,继续回溯到上一行。 5、把最后一个皇后成功安置在最_n皇后问题答案个数

ModuleNotFoundError: No module named ‘utils.utils‘ pytorch项目报错_no module named 'utils.utils-程序员宅基地

文章浏览阅读2w次,点赞19次,收藏35次。首先呢会报错是因为引入的问题 代码是这样的但是sys.path.append的功能仅限当前的目录sys.path.append("..")from utils.utils import MyDataset, validate, show_confMat所以应该改为sys.path.append("..")from Code.utils.utils import MyDataset, validate, show_confMat这部分的引入应该从当前目录开始引入比如用这种方式._no module named 'utils.utils

如何在macOS中检查Apple Magic Keyboard电池电量?_mx keys 电量查询-程序员宅基地

文章浏览阅读1.3k次。如何在macOS中检查Apple Magic Keyboard电池电量?Apple的Magic Keyboard结合了时尚的设计,每个按键下方的稳定剪刀机制以及内置的可充电电池,可通过随附的Lightning至USB电缆为它充电,这意味着您不必为更换AA电池而烦恼。以下步骤向您展示了操作方法:1.点击Mac屏幕左上角菜单栏中的Apple符号。2.选择系统偏好设置3.选择键盘首选项窗格。4.选中“键盘”选项卡后,检查窗口左下角的键盘电池电量。这显示了Apple蓝牙键盘电池中剩余的电池寿命百分比。_mx keys 电量查询

随便推点

mysql8 执行SQL语句报错 "this is incompatible with sql_mode=only_full_group_by"_mysql 8 this is incompatible with sql_mode=only_fu-程序员宅基地

文章浏览阅读6.1k次,点赞4次,收藏5次。WIN10的my.ini下配置:[mysqld]sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"重启mysql后在客户端查询 select @@sql_mode;如下图:证明生效了,再查询就不会出现此问题..._mysql 8 this is incompatible with sql_mode=only_full_group_by

卸载Navicat!操作所有的数据库靠它就够了-程序员宅基地

文章浏览阅读102次。来自:开源最前线(ID:OpenSourceTop)综合自:https://ithelp.ithome.com.tw/articles/10196383、https://github.co..._卸载pgsql和navcat

Selenium IDE的使用方法-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏67次。Selenium介绍Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。Selenium家庭成员有三个,分别是Selenium WebDriver、Selenium IDE和Selenium Grid,这篇博客主要介绍Selenium IDE的使用方法。Selenium官网地址Selenium IDE介绍Selenium IDE是Chrome和FireFox浏览器中的插件,Selenium IDE结合浏览器提供脚本录制、脚本回放、脚本_selenium ide

Scalar, Vector, Matrix, Tensor, Array 傻傻分不清楚,看完这篇可视化你就明白!_scalar和vector怎么分-程序员宅基地

文章浏览阅读1.2w次,点赞19次,收藏62次。目录Scalar(标量)Vector(向量)Matrix(矩阵)Tensor(张量)Array(数组)先上两张图感受下,Scalar-Vector-Matrix-Tensor的过程即从单个数值到一维到二维一直不断增加维度的数据结构。Scalar(标量)Vector(向量)Matrix(矩阵)Tensor(张量)Array(数组)..._scalar和vector怎么分

OpenCL使用子缓冲对象(Sub buffer)报错CL_DEVICE_MEM_BASE_ADDR_ALIGN的解决方法_opencl subbuffer-程序员宅基地

文章浏览阅读399次。最近由于新冠疫情原因宅于家中,不得不重新搞个电脑继续毕设之旅,学校所用电脑为i5-6500+Titan xp,在家只能自掏腰包配了个i5-9400f + 1660,CPU升级了下,GPU看看就好。废话不说了,直奔主题。在使用OpenCL创建子缓冲对象时,使用 i5-9400f CPU 作为计算设备会出现 CL_DEVICE_MEM_BASE_ADDR_ALIGN,而对于相同的程序,GPU则..._opencl subbuffer

jupyter notebook版本更新和降低版本命令_jupyternotebook 降版本-程序员宅基地

文章浏览阅读1.2w次。安装更高的版本:pip install -U "notebook>6.0"降低版本pip install -U "notebook<5.0"_jupyternotebook 降版本

推荐文章

热门文章

相关标签