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

如何在JavaScript的GET请求中发送JSON数据?Python代码转JS实现求助

Python requests 逻辑转JavaScript实现方案

原Python代码的核心逻辑为向指定地址发送携带JSON请求体的GET请求,并将返回结果解析为JSON对象,不同运行环境下的JS实现如下:

浏览器端(原生fetch实现,无额外依赖)

const url = "myApi";

async function requestApi() {
  const res = await fetch(url, {
    method: "GET",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      from: "default",
      to: "default"
    })
  });
  // 可自行添加状态码校验逻辑
  if (!res.ok) throw new Error(`接口请求错误:${res.status}`);
  const dic = await res.json();
  // 此处添加拿到dic后的处理逻辑
  console.log(dic);
}

requestApi();

Node.js环境实现

方案1:使用axios(用法最接近Python requests)

首先安装依赖:
npm install axios

实现代码:

const axios = require('axios');
const url = "myApi";

async function requestApi() {
  const res = await axios.get(url, {
    data: {
      from: "default",
      to: "default"
    }
  });
  const dic = res.data;
  // 此处添加拿到dic后的处理逻辑
  console.log(dic);
}

requestApi();

方案2:原生http/https模块实现(无第三方依赖)

const https = require('https'); // 若接口为http协议则引入http模块
const url = "myApi";
const postData = JSON.stringify({
  from: "default",
  to: "default"
});

const options = new URL(url);
options.method = 'GET';
options.headers = {
  'Content-Type': 'application/json',
  'Content-Length': Buffer.byteLength(postData)
};

const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    const dic = JSON.parse(data);
    // 此处添加拿到dic后的处理逻辑
    console.log(dic);
  });
});

req.on('error', (e) => {
  console.error(`请求遇到问题: ${e.message}`);
});

req.write(postData);
req.end();
  • 补充说明:部分后端服务不支持GET请求携带请求体,遇到这种情况可将请求方法改为POST,只需修改上述代码中的method属性值即可,参数传递逻辑无需调整。

内容的提问来源于stack exchange,提问作者Pedro Silverio Puerta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:21:00