使用用户输入进行API查询

时间:2018-09-02 13:19:05

标签: javascript ajax api

我有一个表单,其中用户键入城市名称,我想进行API调用并获取该城市的天气结果,然后将其显示在控制台中。

我收到一个错误,因为出于某种原因,保存input.value的变量没有被串联到字符串中。

代码如下:

var request;
var input1 = document.getElementById('city');
var api = 'https://api.openweathermap.org/data/2.5/weather?q=';
var apikey = '&APPID=433b12b793d7ebc17989745c069a540b';
var sum = api + input1.value + apikey;

function myFunction() {

  request = new XMLHttpRequest();

  request.open('GET', sum, true);
  request.onload = function() {

    var data = JSON.parse(this.response);
    if (request.status >= 200 && request.status < 400) {
      console.log(data);
    } else {
      console.log(input1.value);
    }
  }

  request.send();
}
myFunction(input1.value);
<input id='city' value='San Francisco'>

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的代码还可以,您只需将所有内容放入函数中即可。

 <script>
    function myFunction() {

        var request;
        var input1 = document.getElementById('city');
        var api = 'https://api.openweathermap.org/data/2.5/weather?q=';
        var apikey =
            '&APPID=433b12b793d7ebc17989745c069a540b';
        var sum = api + input1.value + apikey;

        request = new XMLHttpRequest();

        request.open('GET', sum, true);
        request.onload = function () {

            var data = JSON.parse(this.response);
            if (request.status >= 200 && request.status < 400) {
                console.log(data);
            } else {
                console.log(input1.value);
            }
        }

        request.send();
    }
</script>