跨域安全错误(Cross-Origin Resource Sharing, CORS)是浏览器基于同源策略(Same-Origin Policy)实施的安全限制,当Web应用尝试访问不同源(协议、域名、端口任一不同)的资源时触发的安全机制。以下是系统性解析:
http/https
)、域名(example.com
)、端口(8080
)完全一致才允许请求。Access-Control-Allow-Origin
)协商是否允许跨域请求,需服务器显式声明可信来源。client.com
的CORS头部。PUT
、自定义头部)。OPTIONS
请求或未返回Access-Control-Allow-Methods
。--disable-web-security
(不推荐生产环境)。function handleResponse(data) {
console.log(data);
}
const script = document.createElement('script');
script.src = 'https://api.example.com/data?callback=handleResponse';
document.body.appendChild(script);
| 头部字段 | 作用 |
|----------------------------------|----------------------------------------|
| Access-Control-Allow-Origin
| 允许的源(如*
或https://client.com
)|
| Access-Control-Allow-Methods
| 允许的HTTP方法(如GET, POST
) |
| Access-Control-Allow-Headers
| 允许的请求头部(如Content-Type
) |
| Access-Control-Allow-Credentials
| 是否允许携带Cookie(需前端设置withCredentials
) |
*
通配符,应精确配置允许的源。Network
标签中的Response Headers
是否包含CORS头部。通过合理配置CORS策略,可平衡安全性与开发灵活性。若问题仍未解决,需检查服务器中间件、CDN配置或第三方服务文档。