技术与生活 / 一篇记录
跨域报错,到底是谁拒绝了谁?
服务器可能已经处理请求,但浏览器不允许页面脚本读取响应。简单请求与预检请求的流程也不相同,因此控制台报错不能直接等同于接口未被调用。
协议、主机和端口共同构成源,跨源读取响应需要明确授权。
实际怎么检查
域名 example.com 仅用于说明,核查自己的网站时请替换目标地址。
Access-Control-Allow-Origin: https://example.com
区分浏览器拦截与服务器实际返回错误。
遇到异常再检查什么
观察 Network 面板中的实际请求及 OPTIONS 预检。携带凭据时应精确配置允许来源,避免把放开跨域误当作完整的访问控制方案。
预检请求没有通过时,真正的业务请求可能还没有发送。先观察方法、请求头和凭据模式,再检查服务器对应授权规则。不同错误阶段应使用不同证据,不能只看控制台一句提示。
CORS 不是身份认证,也不能阻止非浏览器客户端直接请求。
参考:HTTP 文档。