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

使用Fetch的GET方法发送数据对象失败,求解决方案

解决Fetch GET请求无法通过body传数据的问题

HTTP规范里GET/HEAD请求不允许携带body,这就是浏览器报错的原因——这类请求的设计逻辑是从服务器获取资源,数据应该通过URL的查询参数传递,而非请求体。下面给两种可行的解决办法:

方案1:改用POST请求(推荐,若后端支持)

如果后端接口支持POST方法接收token,直接把请求方法改成POST,就能正常用body传JSON数据:

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json"); // 必须添加这个头,告诉后端请求体是JSON格式

var raw = JSON.stringify({
  "token": "<secret>"
});

var requestOptions = {
  method: 'POST', // 把GET改为POST
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://www.quickly-egypt.com/api/v1/client/address/all", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

方案2:将数据拼到URL的查询参数中(必须用GET时)

如果接口只能用GET请求,就把token作为查询参数拼在URL后面:

var token = "<secret>";
// 用URLSearchParams处理参数,自动编码特殊字符避免报错
var params = new URLSearchParams();
params.append('token', token);

// 把参数拼接到URL末尾
var url = `https://www.quickly-egypt.com/api/v1/client/address/all?${params.toString()}`;

var requestOptions = {
  method: 'GET',
  redirect: 'follow'
};

fetch(url, requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

如果要传递更复杂的对象,也可以把对象拆解成键值对后逐个添加到URLSearchParams里,原生API足够处理大部分简单场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:15:51