公司网站界面设计,建一个区域网站需要多少资金,wordpress 大气模板,安亭公司网站建设当Web应用程序尝试从一个源#xff08;例如 http://localhost:9090#xff09;向另一个不同的源#xff08;例如 http://localhost:8080#xff09;发起请求时#xff0c;发现报错#xff1a; 报错原因#xff1a;请求被CORS策略拦截了 跨域问题概述 当Web应用程序尝试…当Web应用程序尝试从一个源例如 http://localhost:9090向另一个不同的源例如 http://localhost:8080发起请求时发现报错 报错原因请求被CORS策略拦截了 跨域问题概述 当Web应用程序尝试从一个源例如 http://localhost:9090向另一个不同的源例如 http://localhost:8080发起请求时如果这两个源的协议、域名或端口有任何不同则这种请求被视为跨域请求。浏览器为了安全考虑会默认阻止这样的请求除非服务器明确允许。
在之前的项目中由于前后端代码部署在同一服务下使用相同的端口号因此没有遇到跨域问题。然而在当前的前后端分离架构中前端运行在一个独立的服务上如端口9090而后端API则运行在另一个服务上如端口8080。这导致了跨域访问的问题。 SSM 结构中的跨域处理 SSMSpring Spring MVC MyBatis结构中Spring MVC框架默认遵循同源策略不允许跨域请求以增强安全性。这意味着除非特别配置否则来自外部的请求将被拒绝。例如当你正在浏览某个网站时如果该网站试图向你的银行网站发送请求这种行为通常会被禁止除非银行网站明确指定了允许的条件和授权。 解决方案 为了解决跨域问题可以在后端添加CORS支持允许特定的来源访问资源。以下是在Spring MVC中启用CORS的一种方法
创建配置类在项目的config包内创建一个新的Java类命名为WebConfig。编写CORS配置在WebConfig类中定义一个方法来设置CORS规则并将其注册到Spring MVC中。
package cn.tedu.ivos.base.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** 跨域处理配置类* version 1.0* date 2024-11-29*/
Configuration
public class WebConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**).allowedHeaders(*).allowedMethods(*).allowedOriginPatterns(*).allowCredentials(true).maxAge(3600);}
}
重启后端工程保存更改并重启后端应用确保新的CORS配置生效。
通过上述步骤你能够为特定的来源在这个例子中是http://localhost:9090开启跨域资源共享从而解决前端与后端之间因端口不同而导致的跨域问题。