目前,我正试图在code.org上的Applab中运行此代码:
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()回调参数值([object object])不是一个函数">
有人知道这个问题的解决方法吗?我尝试使用"fetch("https://api.apilayer.com/exchangerates_data/symbols?to=", requestOptions)"元素,但似乎code.org太难懂了,无法使用& fetch"前定义。相反,它使用的是startwebrequest;我不确定它是如何工作的,所以我告诉ChatGPT将我的代码从"fetch";startWebRequest"这就是它给我的。
startWebRequest()
有两个参数;URL和一个回调函数。你需要按顺序给出这些参数,而不能给出其他参数,比如请求。它期待一个函数,但你给了一个请求对象,这就是为什么它给出一个错误。
但是主要的问题是,code.org有一个允许我们进行API调用的主机名列表,而api.apilayer.com不是其中之一。所以你不能使用App Lab从api.apilayer.com进行API调用。
这里可以检查允许的主机名;https://studio.code.org/docs/ide/applab/expressions/startWebRequest