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

code.org Applab中startWebRequest调用API报错的解决咨询

解决code.org Applab中startWebRequest回调报错问题

问题重现

在code.org Applab中调用汇率API时,执行以下代码出现错误:

var url = "https://api.apilayer.com/exchangerates_data/symbols?to=";
var request = {
    method: "GET",
    headers: {
        "apikey": "XOIlrz9JbDcWlmjNvG9vuBwUDRByRpEt",
        "Content-Type": "application/json"
    }
};

startWebRequest(url, request, function(status, json) {
    if (status === 200) {
        console.log(json.symbols);
    } else {
        console.error("Error: " + status);
    }
});

控制台报错:startWebRequest() callback parameter value ([object Object]) is not a function

错误原因

code.org Applab的startWebRequest函数参数顺序与常规HTTP请求方法不同,它的第二个参数要求是回调函数,而非请求配置对象。原代码将请求配置request放在了第二个参数位置,导致平台识别到的回调是一个对象而非函数,从而抛出错误。

解决方案

调整参数顺序,将回调函数作为第二个参数,请求配置对象作为第三个可选参数。修正后的代码如下:

var url = "https://api.apilayer.com/exchangerates_data/symbols?to=";
var requestOptions = {
    method: "GET",
    headers: {
        "apikey": "XOIlrz9JbDcWlmjNvG9vuBwUDRByRpEt",
        "Content-Type": "application/json"
    }
};

// 正确参数顺序:URL → 回调函数 → 请求配置
startWebRequest(url, function(status, json) {
    if (status === 200) {
        console.log(json.symbols);
    } else {
        console.error("Error: " + status);
    }
}, requestOptions);

额外注意事项

  • 避免在公开代码中直接暴露API密钥,防止密钥泄露;
  • 补充?to=参数后的目标货币代码(例如?to=USD),否则API可能返回无效数据;
  • 如果Applab对自定义请求头支持有限,可尝试将API密钥放在URL参数中(如https://api.apilayer.com/exchangerates_data/symbols?to=&apikey=你的密钥),具体需参照API服务商的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:52:14