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

ReactJS中使用Axios发起GET请求遇CORS问题求助

解决Axios跨域请求CORS错误的问题

嗨,我来帮你搞定这个跨域问题~你遇到的这个错误其实是个很常见的误区,先给你拆解清楚:

为什么你加Access-Control-Allow-Origin请求头没用?

Access-Control-Allow-Origin这个响应头是服务器返回给浏览器的,用来告诉浏览器“我允许这个域名的请求访问我”,而不是前端发请求的时候带给服务器的。你在Axios请求里加这个头,浏览器根本不会认可它,反而会因为跨域规则直接拦截请求,所以问题自然没解决。

正确的解决办法分两种场景:

1. 服务器端配置CORS(推荐,生产环境必须)

既然这个头是服务器返回的,那我们要在你的Java Servlet里添加响应头:
在Servlet的doGet方法里加入这段代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 允许所有域名跨域访问,生产环境建议指定具体域名
    response.setHeader("Access-Control-Allow-Origin", "*");
    // 允许的请求方法
    response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
    // 允许的请求头
    response.setHeader("Access-Control-Allow-Headers", "Content-Type");
    
    // 你的原有业务逻辑代码...
}

如果有多个Servlet需要配置,最好写一个CORS过滤器,统一处理所有请求,这样更高效。

2. 本地开发用React代理(仅开发环境用)

如果你只是本地开发测试,可以在React项目的package.json里添加代理配置:

{
  "name": "your-react-app",
  "version": "0.1.0",
  "proxy": "http://localhost:8080", // 这里填你的后端服务地址
  // ...其他配置
}

然后你的Axios请求就可以写成相对路径:

axios.get("/MyWebApplication/MyServlet").then(data => {
  // 你的处理代码
});

这样React开发服务器会自动把请求转发到后端,绕过浏览器的跨域检查,开发时用起来很方便。

总结一下

你之前的错误是搞反了Access-Control-Allow-Origin的作用对象,它是服务器给浏览器的“通行证”,不是前端给服务器的“申请单”。按上面的方法配置后,跨域问题就能解决啦~

内容的提问来源于stack exchange,提问作者nix86

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:17:33