gpt4 book ai didi

javascript - Ajax(XMLHttpRequest)请求的responseText未定义

转载 作者:行者123 更新时间:2023-12-01 03:22:52 24 4
gpt4 key购买 nike

我一直在尝试开发一个简单的控制台应用程序,它可以做两件事。(1.) 它将发出异步 Ajax 请求。(2.) 将responseText记录到控制台。

为此,我向 openweathermap.org 发出了 ajax 请求,并尝试将响应文本解析为 JSON,最后将其记录到控制台。

请在下面找到我的代码来实现此目的

var data ;
var url = "http://api.openweathermap.org/data/2.5/weather?id=7535661&APPID=56104080d6cb412468dad1627cb27da6";

var myRequest;

function sendRequest(url){
myRequest = new XMLHttpRequest();
myRequest.onreadystatechange= function(){
if(myRequest.readyState == 4 && myRequest.status== 200){
data= JSON.parse(myRequest.responseText);

}
myRequest.open("GET", url, true );
myRequest.send();
}
console.log(data);
}

sendRequest(url);

每次我尝试运行它时,它总是返回“未定义”。

请帮帮我。

最佳答案

您的 onreadystatechange() 回调中有 open()send() 方法。因此,除非请求完成,否则您永远不会打开连接。试试这个:

var data;
var url = "http://api.openweathermap.org/data/2.5/weather?id=7535661&APPID=56104080d6cb412468dad1627cb27da6";

var myRequest;

function sendRequest(url) {
myRequest = new XMLHttpRequest();
myRequest.onreadystatechange = function() {
if (myRequest.readyState == 4 && myRequest.status == 200) {
data = JSON.parse(myRequest.responseText);
console.log(data);
}
}
myRequest.open("GET", url, true);
myRequest.send();
}

sendRequest(url);

关于javascript - Ajax(XMLHttpRequest)请求的responseText未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45045754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com