如何在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
相关产品推荐
相关产品推荐

