【发布时间】:2021-09-12 17:08:57
【问题描述】:
我是 Javascript 新手。我正在尝试制作一个简单的提示网站,并且正在尝试使用 HTTP GET 请求从该网站获取形容词:https://random-word-form.herokuapp.com/
但是,我总是收到错误的请求错误。我尝试了一个测试 API 并观看了几个视频,并使用了他们所做的相同代码来查看我是否可以解决我的问题,但它仍然无法正常工作。
我们将不胜感激。
javascript代码如下:
let adjective;
function buttonclick(method, url){
console.log("hi");
const xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.responseType = 'json';
xhr.send();
xhr.onload = function(){
if(xhr.status!=200){
alert('Error');
}
else {
alert('got ${xhr.response.length');
}
let responseData = xhr.response;
return responseData;
};
};
function getData(){
adjective = buttonclick('GET','https://random-word-form.herokuapp.com/random/adjective');
console.log(adjective);
};
getData();
【问题讨论】:
-
我已将您的代码复制到堆栈片段中。它不会产生错误的请求错误,并且会在控制台中记录一个随机单词(作为单元素 JSON 数组)。不过,我会推荐一些东西: 1. 使用
fetch而不是XMLHttpRequest。 2. 不要将;放在函数declarations 之后(;是statement 终止符)。 3. 在发送请求之前 挂钩事件处理程序(如果您切换到fetch,则不会成为问题)。 4. 不要return来自onload的任何东西(同样,如果...,则非问题)。 -
5.在“else”分支中,您的意思似乎是使用模板文字,但您使用了字符串文字。阅读模板文字here。 (忽略那篇文章标题的“(模板字符串)”部分。模板文字是不是字符串。未标记的模板文字确实会产生字符串,但标记的不会。)
-
@T.J.Crowder 谢谢!我会这样做的:)
标签: javascript xmlhttprequest http-get