You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置请求头后仍出现CORS错误,axios跨域请求失败该如何解决?

Access to XMLHttpRequest at 'https://services.3xsoftware.co.uk/Search/ByPostcode/' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

问题根因
  • 对CORS规则理解错误:Access-Control-Allow-Origin是响应头,必须由被请求的服务端在返回响应时携带,由浏览器校验是否允许跨域访问。你在客户端请求头中添加该字段完全无效,反而可能触发额外的预检请求,甚至被服务器判定为非法请求头直接拒绝。
  • axios调用传参格式错误:axios.get()方法的第二个参数直接是配置对象,你多传了一个空字符串""作为第二个参数,导致后续的配置对象没有被正确读取,你写的请求头、responseType配置都完全未生效。
解决方案

方案1(可控制目标服务端时使用)

直接在https://services.3xsoftware.co.uk的服务端配置中,给响应头添加Access-Control-Allow-Origin: http://localhost即可,生产环境建议不要用*通配符,指定具体可信源安全性更高。

方案2(不可控制目标服务端、开发阶段使用)

用本地代理转发请求:可以直接用前端构建工具自带的代理能力(比如webpack的devServer.proxy、vite的server.proxy),也可以自行本地启动一个node代理服务,由服务端转发请求到目标接口再将结果返回给前端,服务端之间的请求不受浏览器同源策略限制,不会触发CORS报错。

方案3(仅临时调试使用)

可以使用浏览器CORS禁用插件,或者给浏览器添加--disable-web-security启动参数关闭同源策略,该方案仅可用于本地测试,绝对不能用于生产环境。

修正后的请求代码示例
axios.get('https://services.3xsoftware.co.uk/Search/ByPostcode/' + postcode,
    {
        responseType: "json",
    }
)

内容的提问来源于stack exchange,提问作者Nazmul Hossain Nihal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:45:03