11XMLHttpRequestHW.md 2.8 KB

XMLHttpRequest ДЗ

Города-страны

Загрузить, используя AJAX JSON со странами и городами: JSON Создать два выпадающих списка (<select>), один со странами, второй с городами для текущей выбранной страны. При изменении страны список городов должен обновляться.

Доделать

Weather

Сделайте возможность узнать погоду, используя код предыдущего задания и Yahoo Weahter API Для получения погоды по городу используйте YQL запрос

select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="CITYNAME") and u='c'

где CITYNAME - имя города, выбранного пользователем

Конечная точка (URL-адрес), описан в Yahoo Weather API:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22kharkiv%22)%20and%20u%3D'c'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys

В качестве параметра q идет YQL запрос, например, указанный выше. Для получения погоды нужно:

  • узнать строку с городом
  • сформировать YQL-запрос с этим городом (подменить CITYNAME на имя города)
  • сделать запрос, в котором параметром q будет ваш YQL запрос.
  • Для кодирования строки в параметр URI используйте функцию encodeURIComponent

Для передачи параметров в GET используйте:

... 
    request.open('GET', "https://query.yahooapis.com/v1/public/yql?" + 'q=' + encodeURIComponent("YQL-ЗАПРОС-С-ПРАВИЛЬНЫМ-ГОРОДОМ") + '&format=json', true)
...

После получения данных выведите их в наглядном виде, используя возможности DOM. Например можете сделать что-то типа погодного виджета/информера.

GET && POST

Ознакомьтесь с типами HTTP запроосов: POST и GET. Отметьте для себя отличия между ними.

let

Используйте let где это уместно (по вашему мнению) в этих заданиях.