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

Vue3 Vite项目中Axios Post请求浏览器显示为Get的问题咨询

问题描述

在Vue3 + Vite项目中,使用Axios的post方法发起请求,浏览器Network面板显示请求方法为GET,但服务器端(Express)已配置POST路由且能正常响应该请求。同时项目通过vite.config.js配置了代理解决CORS问题,不确定是否和此现象有关。

已提供相关截图:

  • Axios请求代码截图
  • Express POST路由配置截图
  • 浏览器Network请求截图
  • 封装的Axios请求函数截图
排查方向
  • 检查封装的Axios函数是否存在方法覆盖
    查看封装的请求函数,确认是否在处理时把POST方法意外转为了GET。比如是否有逻辑判断错误或默认参数设置错误,示例错误代码:

    // 错误示例:未正确读取传入的method,强制设为GET
    function request(options) {
      return axios({
        method: 'GET',
        url: options.url,
        data: options.data
      })
    }
    
  • 检查代理配置是否触发重定向或方法转换
    查看vite.config.js中的代理配置,确认是否存在修改请求方法的逻辑,或者是否因代理配置导致请求触发30x重定向(浏览器会自动将重定向的POST转为GET)。示例代理配置检查点:

    // vite.config.js 代理配置检查
    export default defineConfig({
      server: {
        proxy: {
          '/api': {
            target: 'http://localhost:3000',
            changeOrigin: true,
            // 排查是否有rewrite规则或其他可能影响请求方法的配置
          }
        }
      }
    })
    
  • 检查服务器端是否存在重定向
    查看Network面板中请求的状态码,如果是301/302,说明请求被服务器重定向。此时需要检查服务器路由配置,比如是否因URL路径拼写问题(如末尾多了/)导致自动重定向。

  • 检查Axios拦截器是否修改请求方法
    确认是否为Axios实例添加了请求拦截器,且拦截器中意外修改了请求方法:

    // 错误示例:拦截器中强制修改请求方法
    axios.interceptors.request.use(config => {
      config.method = 'GET'
      return config
    })
    
  • 用原生请求测试定位问题
    在浏览器控制台用fetch直接发起POST请求,验证Network显示是否正常:

    fetch('/api/your-target-path', {
      method: 'POST',
      body: JSON.stringify({}),
      headers: { 'Content-Type': 'application/json' }
    })
    

    如果此时Network显示POST,说明问题出在Axios封装或配置上;如果仍显示GET,大概率是代理或服务器端的重定向问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:40:38