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

郑州航海路附近网站建设公司陕西seo公司

郑州航海路附近网站建设公司,陕西seo公司,怎么做动态网站php,seo北京网站推广Spring Boot Vue 前后端分离项目解决跨域问题详解 在进行前后端分离开发时,跨域问题(CORS, Cross-Origin Resource Sharing)几乎是每个开发者都必须面对的挑战。本文将基于 Spring Boot Vue 项目,详解如何优雅地解决跨域问题&a…

Spring Boot + Vue 前后端分离项目解决跨域问题详解

在进行前后端分离开发时,跨域问题(CORS, Cross-Origin Resource Sharing)几乎是每个开发者都必须面对的挑战。本文将基于 Spring Boot + Vue 项目,详解如何优雅地解决跨域问题,并介绍几种常见方案及其适用场景。


一、什么是跨域问题?

跨域问题本质是浏览器的同源策略(Same-Origin Policy)限制了前端对不同源(协议、域名、端口)服务器的请求。

举例说明:
前端运行在 http://localhost:8080,而后端运行在 http://localhost:8081,两者的端口不同,属于“跨域”。


二、跨域的典型表现

当前端请求后端接口时,控制台报错类似如下:

Access to XMLHttpRequest at 'http://localhost:8081/api/data' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

三、Spring Boot 跨域解决方案

方法一:使用 @CrossOrigin 注解(推荐用于开发调试)

@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "*") // 允许所有来源跨域
public class TestController {@GetMapping("/hello")public String sayHello() {return "Hello from backend!";}
}

你可以根据需要设置更严格的来源控制:

@CrossOrigin(origins = "http://localhost:8080")

缺点:需要对每个 Controller 或方法添加注解,维护成本高。


方法二:全局 CORS 配置(推荐生产使用)

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 CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS").maxAge(3600).allowedHeaders("*");}
}

优点:统一配置,适用于大型项目和生产环境。


方法三:使用自定义 Filter(可选方案)

@Component
public class CorsFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletResponse res = (HttpServletResponse) response;HttpServletRequest req = (HttpServletRequest) request;res.setHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));res.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");res.setHeader("Access-Control-Allow-Headers", "*");res.setHeader("Access-Control-Allow-Credentials", "true");if ("OPTIONS".equalsIgnoreCase(req.getMethod())) {res.setStatus(HttpServletResponse.SC_OK);} else {chain.doFilter(request, response);}}
}

四、Vue 前端配置(开发环境)

Vue CLI 提供了 vue.config.js 来配置代理:

// vue.config.js
module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:8081', // 后端服务地址changeOrigin: true,pathRewrite: {'^/api': ''}}}}
}

请求示例:

axios.get('/api/hello').then(res => {console.log(res.data);
});
http://www.dtcms.com/wzjs/425968.html

相关文章:

  • 购物网站源码最近新闻热点国家大事
  • 温州大凯工艺品有限公司英文网站营销型网站方案
  • 东莞网络公司网站建设网络营销讲师
  • 全国100个最缺工职业淄博seo
  • 深圳展览设计网站建设免费涨热度软件
  • 北京网站备案注销中心seo关键词排名优化要多少钱
  • 深圳房管局官网查询系统宁波正规优化seo软件
  • 麻涌东莞网站建设网站首页不收录
  • 盐田做网站的公司网页一键生成app软件
  • cnnic 是什么网站搜索引擎推广的方法有哪些
  • 用wordpress修改网站域名查询ip网站
  • 做网站需要的注意事项企业网站建设服务
  • 网站首页快照不更新做直销去哪里找客户
  • 东海县建网站品牌策划案
  • 做自媒体的有哪些素材网站免费做做网站
  • 做百度手机网站点击厦门seo外包
  • 丹江口做网站宣传推广方式有哪些
  • 班级网站建设模板下载搜索引擎排名2020
  • 网站布局的好坏的几个要素英文外链seo兼职在哪里找
  • 茂名建站模板搭建福建seo搜索引擎优化
  • 软件开发专业课程有哪些百度seo关键词排名优化软件
  • 织梦网站根目录标签网络营销工作内容
  • 酒店 深圳 网站建设打开网址跳转到国外网站
  • 网站cnameseo是什么姓氏
  • 网站跨平台html网页制作网站
  • wordpress标签样式表seo是指什么意思
  • 房屋建筑设计网站黄页引流推广网站入口
  • 保定 网站建设深圳关键词推广整站优化
  • 医院网站 功能今日头条最新消息
  • 网络服务器有哪些长春网站快速优化排名