• 配置跨域CorsConfig类


    CorsConfig.java

    1. import org.springframework.context.annotation.Bean;
    2. import org.springframework.context.annotation.Configuration;
    3. import org.springframework.web.cors.CorsConfiguration;
    4. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
    5. import org.springframework.web.filter.CorsFilter;
    6. /**
    7. * 支持跨域配置类
    8. */
    9. @Configuration
    10. public class CorsConfig{
    11. @Bean
    12. public CorsFilter corsFilter(){
    13. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    14. CorsConfiguration corsConfiguration = new CorsConfiguration();
    15. /*1.设置访问源地址*/
    16. corsConfiguration.addAllowedOrigin("*");
    17. /*2.设置访问源请求头*/
    18. corsConfiguration.addAllowedHeader("*");
    19. /*3.设置访问源请求方法*/
    20. corsConfiguration.addAllowedMethod("*");
    21. /*4.对接口配置跨域设置*/
    22. source.registerCorsConfiguration("/**",corsConfiguration);
    23. return new CorsFilter(source);
    24. }
    25. }

    前端配置(在src/utils/request.js文件夹下配置没有就新建一个utils文件夹和request.js文件)

    1. import axios from "axios"
    2. // axios是用于前端获取请求URL
    3. // 创建一个axios对象
    4. const request = axios.create({
    5. // baseURL: 后台的URL
    6. baseURL: 'http://localhost:9090/api',
    7. timeout: 50000
    8. })
    9. // request 拦截器
    10. // 可以自请求发送前对请求做一些处理
    11. // 比如统一加token,对请求参数统一加密
    12. //添加一个请求拦截器
    13. request.interceptors.request.use(config => {
    14. // 封装请求头
    15. config.headers['Content-Type'] = 'application/json';
    16. let user = JSON.parse(localStorage.getItem("user"));
    17. if(user){
    18. // 设置请求头
    19. config.headers['token'] = user.token
    20. }
    21. return config;
    22. }, error => {
    23. return Promise.reject(error)
    24. });
    25. // response 拦截器
    26. // 可以在接口响应后统一处理结果
    27. request.interceptors.response.use(
    28. response => {
    29. // response.data即为后端返回的AjaxResult
    30. let res = response.data;
    31. // 兼容服务端返回的字符串数据
    32. if (typeof res === 'string') {
    33. res = res ? JSON.parse(res) : res
    34. }
    35. return res;
    36. },
    37. error => {
    38. console.log('err' + error) // for debug
    39. return Promise.reject(error)
    40. }
    41. )
    42. // 以request暴露出去
    43. export default request

    如果还是不行,查看注解上的路径是否正确

  • 相关阅读:
    LLDB 三种输出方式 对比及原理探索
    在win上配置pytorch用到的一些命令(PyCharm & Anaconda)
    多线程概述
    【自然语言处理】不同策略的主题建模方法比较
    【在Vue脚手架项目中使用qs框架】
    【数据库三大范式】让我们来聊一聊数据库的三大范式和反范式设计
    提高代码可读性的秘诀:注释的重要性
    PAT乙级真题练习:1001-1004
    创建线程池
    a股level2数据接口的最优委托信息
  • 原文地址:https://blog.csdn.net/qq_53376718/article/details/138659307