SpringBoot解决跨域问题+Vue使用axios、项目文件搭建常用配置文件request.js

1.后端解决跨域问题
复制代码
@Configuration
public class CorsConfig {
    //跨域请求最大有效时长,此处设置默认1天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("http://localhost:8080");  //1.设置访问源地址(前端地址)
        corsConfiguration.addAllowedHeader("*");  //2.设置访问源请求头
        corsConfiguration.addAllowedMethod("*");  //3.设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);  //预检请求的有效期,单位为秒
        source.registerCorsConfiguration("/**", corsConfiguration); //4.对接口配置跨域设置
        return new CorsFilter(source);
    }
}
复制代码

2.前端先引入axios,npm install axios 或 yarn add axios(看自己是哪种JS包管理工具)
3.前端request.js

复制代码
//导入axios
import axios from 'axios'

const request = axios.create({
    baseURL: '/api',  
    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
        }
        // 兼容服务端返回的字符串数据,转换成JSON对象
        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
复制代码

4.前端设置使用axios

//引入request
import request from './utils/request';

// Vue2 main.js使用axios
Vue.prototype.request=request

5.前端script引入request(或者不引入,在使用request的时候加上this调用)

<script>
import request from '../utils/request'

............................................
............................................
............................................

</script>

 

 

参考资料:
SpringBoot解决跨域问题_程序员青戈的博客-CSDN博客_springboot解决跨域问题 青戈

Vue项目搭建常用的配置文件,request.js和vue.config.js_程序员青戈的博客-CSDN博客_vue config.headers配置



posted @   游戏三昧的木笔  阅读(230)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示