Node.js调用简单API返回undefined问题求助
问题分析与解决方案
嘿,我来帮你梳理下代码里的问题,一步步解决获取market_ask失败的情况!
1. 请求调用方式的错误
你把API的主域名和接口路径拆分到了open和send方法里,这不符合XMLHttpRequest的使用规则:
open方法需要传入完整的请求URL,同时指定请求方法;send方法对于GET请求来说,不需要传入任何参数(或者传null即可)。
2. 响应解析方式错误
这个API返回的是JSON格式数据,不是XML,所以不能直接用responseXML去读取。你需要先通过responseText获取响应文本,再用JSON.parse()解析成JavaScript对象,才能访问里面的属性。
修正后的代码
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest(); // 传入完整的接口URL,指定GET请求方法 xhr.open("GET", "https://api.quoine.com/products/1", false); // GET请求无需传参,直接发送 xhr.send(null); // 解析JSON格式的响应内容 var responseData = JSON.parse(xhr.responseText); // 访问目标属性market_ask console.log(responseData.market_ask);
额外小提示
- 你可以先打印完整的响应数据
console.log(responseData),确认返回的结构和API文档描述一致,这样能更快排查属性访问的问题; - 同步请求(
open第三个参数设为false)虽然能运行,但在Node.js里更推荐用异步模式(设为true),通过onload事件处理响应,避免阻塞进程。
内容的提问来源于stack exchange,提问作者Opzeeland
相关产品推荐
相关产品推荐

