当前位置: 首页 > news >正文

Axios跨域请求处理

问题背景:
vue 项目用 axios 进行请求的时候,总是报“Access to XMLHttpRequest at ‘http://localhost:8889/api/login’ from origin ‘http://localhost:8080……’”的错误


实际上就是前后端分离的情况下,发生了跨域的问题
跨域定义:
在这里插入图片描述
解决方案:vue-cli转发+SpringBoot后端配置

本次问题用到了vue-cli的请求代理devServer.proxy,强烈建议查看官网vue-cli请求代理

本次问题产生背景:
在这里插入图片描述
springboot版本:2.5.0,提一下这个主要是因为SpringBoot升级2.4.0之后,跨域配置中的.allowedOrigins不再可用,所以跨域配置需要更改

前端配置(Vue+Axios)

在这里插入图片描述
在这个文件中添加配置,现在是默认配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,lintOnSave: false,
})

加入配置代理
本次问题背景:
前后端分离,前端场景:localhost:8080
后端场景:localhost:8889
前端发出请求,虽然域名相同,但是端口号不同,就会被判定为跨域
所以加入了代理,把8080发出的请求代理到8889的端口(域名也是一个道理),让server认为是同一个域名,同一个port发出的请求,避免了跨域

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,lintOnSave: false,devServer: {proxy: {'/api': {target: 'http://localhost:8889/', //填写请求的目标地址(将请求转发到的目标主机,这样请求就会被认为是同源)changOrigin: true, //允许跨域pathRewrite: {'^/api': '' //请求的时候使用这个api就可以}}}}
})

解读一下:
在这里插入图片描述
其他配置:
在这里插入图片描述

至此前端配置完毕,看一下请求的方法
在这里插入图片描述

后端配置(SpringBoot)

跨域配置

package com.cc.blog.admin.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOriginPatterns("*").allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS").allowCredentials(true).maxAge(3600);}}

测试

响应成功
在这里插入图片描述

http://www.lryc.cn/news/139477.html

相关文章:

  • Docker(二) Docker容器
  • 【业务功能篇81】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-入门实战
  • 【UniApp开发小程序】私聊功能uniapp界面实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】
  • 【BASH】回顾与知识点梳理(三十六)
  • 十三、pikachu之暴力破解
  • 用手势操控现实:OpenCV 音量控制与 AI 换脸技术解析
  • 【leetcode 力扣刷题】移除链表元素 多种解法
  • leetcode503. 下一个更大元素 II 单调栈
  • Oracle中列的维护
  • 后端项目开发:分页功能的实现(Mybatis+pagehelper)
  • SpringBoot集成Drools
  • React创建组件的三种方式及其区别是什么?
  • W6100-EVB-PICO进行UDP组播数据回环测试(九)
  • Qt 阴影边框
  • 前端面试:【性能优化】页面加载性能、渲染性能、资源优化
  • 从按下电源键到进入系统,CPU在干什么?
  • TypeScript初体验
  • 基于 Alpine 环境源码构建 alibaba-tengine(阿里巴巴)的 Docker 镜像
  • 政府网站定期巡检:构建高效、安全与透明的数字政务
  • C++信息学奥赛1138:将字符串中的小写字母转换成大写字母
  • leetcode1475. 商品折扣后的最终价格 【单调栈】
  • macOS M1使用TensorFlow GPU加速
  • GNU-gcc编译选项-1
  • 【DEVOPS】Jenkins使用问题 - 控制台输出乱码
  • logback-spring.xml
  • 华为OD机试之报文重排序【Java源码】
  • 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)
  • DPU在东数西算背景下如何赋能下一代算力基础设施 中科驭数在未来网络发展大会论道
  • 2021年12月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • ArcGIS Serve Windows下用户密码变更导致Server服务无法启动问题