JS代码出现CORS跨域源错误,请求提供解决方法
Access to XMLHttpRequest at 'https://api.elitedias.com/checkid' from origin 'https://stag.speedyninja.co' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. VM5836:50 POST https://api.elitedias.com/checkid net::ERR_FAILED 403 (FORBIDDEN)
解决CORS跨域错误的方案
1. 服务端配置(根本解决方式)
这个错误的核心是目标API https://api.elitedias.com/checkid 没有返回允许跨域的响应头,需要API的开发/运维人员完成以下配置:
- 在响应头中添加
Access-Control-Allow-Origin: https://stag.speedyninja.co,明确允许你的前端域名发起跨域请求;如果是测试环境临时放开,可设为*(生产环境不推荐) - 针对POST请求,还需配置
Access-Control-Allow-Methods: POST, OPTIONS,允许对应的请求方法 - 如果请求需要携带Cookie或自定义头,还要添加
Access-Control-Allow-Credentials: true
2. 前端临时调试方案(仅开发阶段用)
如果暂时无法修改服务端配置,可通过以下方式绕过跨域限制:
- 浏览器插件临时禁用CORS:安装CORS Unblock类插件,关闭浏览器的跨域检查,仅限本地调试使用
- 本地代理转发:在开发环境配置代理,把请求转发到目标API,以Vite为例,在
vite.config.js中添加:
之后前端请求地址改为export default { server: { proxy: { '/checkid': { target: 'https://api.elitedias.com', changeOrigin: true } } } }/checkid,由本地代理转发到目标API,规避跨域问题
3. 额外排查点
注意403状态码可能同时包含权限验证失败的情况,先确认你的请求参数、身份凭证是否正确,排除权限问题导致的错误
内容的提问来源于stack exchange,提问作者Web dev
相关产品推荐
相关产品推荐

