在许多现代的 Web 应用架构中,如前后端分离的模式,前端页面可能运行在一个域名(例如:www.frontend.com),而后端服务则部署在另一个域名(例如:api.backend.com)。这种架构上的分离导致了跨域访问的需求。
当发生跨域请求时,浏览器会在发送请求前进行预检(Preflight)操作。预检请求使用 OPTIONS 方法发送,以获取服务器对跨域请求的许可信息,包括允许的请求方法、请求头和其他相关权限。如果服务器的响应不符合浏览器的预期,跨域请求将被阻止。
跨域访问问题不仅影响到简单的数据获取,还可能涉及到复杂的操作,如发送 POST 请求、携带自定义请求头或需要使用 Cookie 进行身份验证等。解决跨域问题需要综合考虑安全性、性能和可扩展性等多个方面,以确保在满足业务需求的同时,不会引入新的安全风险。
项目创建及依赖配置(pom.xml)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org