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

Expo环境React Native中axios.post发送GET而非POST请求问题

Expo React Native发送multipart/form-data时POST自动转为GET的问题

问题现象

在Expo环境的React Native项目中,发送包含图片的multipart/form-data格式POST请求时,API端实际接收到的是GET请求。仅发送文本内容时请求正常,添加图片后触发该异常;切换为Fetch API测试,问题依然存在;调整URL末尾斜杠也无法解决。

相关代码

const submitDailyLog = async () => {
    console.log("Submitting log...");
  
    if (!content.trim()) {
      Alert.alert("Error", "Content cannot be empty.");
      return;
    }
  
    // Construct FormData
    const formData = new FormData();
    formData.append("content", content.trim());
    photos.forEach((photo, index) => {
      formData.append(`photos[${index}]`, {
        uri: photo.uri,
        name: photo.name,
        type: photo.type,
      });
    });
  
    console.log("FormData:", formData);
  
    const response = await axios.post(
      `https://sub.site.com/api/test/echo`,
      formData,
      {
        headers: {
          Authorization: `Bearer ${authToken}`,
          "Content-Type": "multipart/form-data",
        },
      }
    );
  
    console.log("API Response:", response.data);
  };

API回显响应

API Error Response: {"data": [], "headers": {"accept": ["application/json, text/plain, */*"], ["multipart/form-data; boundary=ZDpdBRQnGPN2ZfBr0r_KfyxIpJl40FbEX3ikNVWRKe2rZDilF51CaVr-Mwlpd6UYOk3mzx"],  "method_called": "GET", "server_request_method": "GET", "success": true, "tagging_code": 406, "uri": "api/test/echo"}

解决方案

  • 移除手动设置的Content-Type头
    当请求体为FormData时,axios和Fetch会自动生成包含正确boundary的multipart/form-data头。手动设置会丢失boundary参数,导致请求格式错误,部分服务器会将无效的POST请求重定向为GET。修改后的请求配置如下:

    const response = await axios.post(
      `https://sub.site.com/api/test/echo`,
      formData,
      {
        headers: {
          Authorization: `Bearer ${authToken}`,
          // 移除手动设置的Content-Type
        },
      }
    );
    
  • 校验图片URI有效性
    确保Expo返回的图片URI格式正确(如file://开头的本地路径),避免因无效文件信息导致请求解析失败,触发服务器的请求方法转换。

  • 排查请求拦截器
    检查项目中是否存在axios或Fetch的请求拦截器,确认没有拦截器修改请求方法或篡改请求头,导致POST被意外转为GET。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:05:04