Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取JSON格式的数据_Javascript_Json_Ajax - Fatal编程技术网

Javascript 如何获取JSON格式的数据

Javascript 如何获取JSON格式的数据,javascript,json,ajax,Javascript,Json,Ajax,在本练习中,我尝试创建一个Fontion askWeather,它将创建一个AJAX请求,然后获取web服务响应并在元素上显示它,Id为=“askWeather”。然后,当我点击按钮时显示结果(quelle est la météo sur Paris?) 这里是html部分 <html> <head> <link rel="stylesheet" type="text/css" href="b

在本练习中,我尝试创建一个Fontion askWeather,它将创建一个AJAX请求,然后获取web服务响应并在元素上显示它,Id为=“askWeather”。然后,当我点击按钮时显示结果(quelle est la météo sur Paris?)

这里是html部分

<html>
    <head>
       <link rel="stylesheet" type="text/css" href="base.css">
    </head>
    <body>  
        <div><button id="ask-weather">Quelle est la météo sur Paris ?</button></div>
        <div id="weather-result"></div>

        <script type="text/javascript" src="index.js"></script>
    </body>

您将希望将askWeather调用放在click处理程序中

const eltAskWeather = document.getElementById("ask-weather");
const weatherResult = document.getElementById("weather-result");

eltAskWeather.addEventListener('click', function(event) {
  var askWeather = new XMLHttpRequest();
  askWeather.onreadystatechange = function() {
    if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
      var response = JSON.parse(this.responseText);
      weatherResult.innerHTML = response.current_condition.condition;
      console.log(weatherResult.innerHTML);
    }
  }

  askWeather.open("GET", "https://www.previsionmeteo.ch/services/json/paris");
  askWeather.send();

});
有关使用的某些功能的详细信息:


您的url中缺少一个
-
。。它的
https://www.prevision-meteo.ch/services/json/paris
还有,你到底为什么不使用fetch api?
askWeather
不是一个函数,所以不能像函数一样调用它(
askWeather()
)。只需将
askWeather.send()
移动到事件处理程序函数中。@lawrencerone Hhaha没错,缺少一个-但这并不能完全解决问题,因为askWeather不是一个函数,所以我应该将askWeather.send()移动到事件处理程序中,或者将其全部移动到事件处理程序中。我没有使用FetchAPI,因为我甚至不知道这意味着什么,哈哈哈,我在谷歌上搜索了它,它说它与react有关,我还是个初学者哈哈:D。无论如何,谢谢你的回复helped@HereticMonkey是的,谢谢你解决了问题,但是url中也缺少一个-哈哈,谢谢,问题解决了,但是url中也缺少一个-哈哈
const eltAskWeather = document.getElementById("ask-weather");
const weatherResult = document.getElementById("weather-result");

eltAskWeather.addEventListener('click', function(event) {
  var askWeather = new XMLHttpRequest();
  askWeather.onreadystatechange = function() {
    if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
      var response = JSON.parse(this.responseText);
      weatherResult.innerHTML = response.current_condition.condition;
      console.log(weatherResult.innerHTML);
    }
  }

  askWeather.open("GET", "https://www.previsionmeteo.ch/services/json/paris");
  askWeather.send();

});