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

Google Apps Script发起POST请求返回405错误但Postman请求正常

问题产生核心原因

405状态码表示服务器拒绝了当前请求使用的HTTP方法,本地/Postman请求正常但Google Apps Script(GAS)请求异常,基本是GAS的UrlFetchApp默认行为和普通HTTP客户端存在差异导致,常见诱因如下:

  • 重定向时自动变更请求方法:UrlFetchApp默认开启重定向跟随,当服务器返回301/302重定向(比如http转https、URL末尾补斜杠、域名跳转等场景)时,会自动将原本的POST请求改为GET请求,若目标接口仅允许POST方法就会返回405。
  • 请求头缺失/不匹配:部分Nginx服务器会校验请求头中的Accept、User-Agent等字段,GAS默认请求头和Postman不一致时会被拦截。
  • URL不规范:使用的接口URL和服务器预期的格式不符(比如缺少末尾斜杠、协议用http而非https)触发重定向。

可行解决方案

1. 优先排查重定向问题(最高概率解决)

先修改请求参数关闭重定向跟随,同时开启HTTP异常静默,确认是否是重定向导致的方法变更:

const header = {
  'X-TOKEN': 'TOKEN',
  // 补全标准请求头
  'Accept': 'application/json',
  'Content-Type': 'application/json'
};
const urlRegions = '你的接口URL'; // 优先替换为https协议的地址
function getList()
{
  const query = {
    "active": true,
    "size":100
  };
  const options = {
    'method' : 'post',
    'headers' : header,
    'payload' : JSON.stringify(query),
    'contentType': 'application/json',
    'followRedirects': false, // 关闭自动重定向
    'muteHttpExceptions': true // 捕获非200响应不直接抛异常
  };
  var response = UrlFetchApp.fetch(urlRegions, options);
  Logger.log(response.getResponseCode());
  Logger.log(response.getAllHeaders()); // 打印响应头
  // 如果返回301/302,取响应头中的Location字段作为新的URL发起POST请求即可
  if(response.getResponseCode() >=300 && response.getResponseCode() <400){
    const redirectUrl = response.getAllHeaders()['Location'];
    const newResponse = UrlFetchApp.fetch(redirectUrl, options);
    Logger.log(newResponse.getContentText());
  }else{
    Logger.log(response.getContentText());
  }
}

2. 替换标准请求User-Agent

如果上述方案无效,可以在请求头中添加和Postman一致的User-Agent,避免服务器拦截GAS的默认UA:

const header = {
  'X-TOKEN': 'TOKEN',
  'Accept': 'application/json',
  'Content-Type': 'application/json',
  'User-Agent': 'PostmanRuntime/7.32.0'
};

3. 校验URL格式

确认接口地址是否符合服务器要求:

  • 优先使用https协议的地址,不要用http
  • 检查地址末尾是否需要加斜杠(比如/api/getList和/api/getList/是两个不同的地址,很容易触发重定向)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:09:04