Ivan Asmer 7 лет назад
Родитель
Сommit
505d230a58
1 измененных файлов с 39 добавлено и 0 удалено
  1. 39 0
      A/11XMLHttpRequestHW.md

+ 39 - 0
A/11XMLHttpRequestHW.md

@@ -0,0 +1,39 @@
+# XMLHttpRequest ДЗ
+
+## Города-страны
+
+Загрузить, используя AJAX JSON со странами и городами: [JSON](https://raw.githubusercontent.com/David-Haim/CountriesToCitiesJSON/master/countriesToCities.json)
+Создать два выпадающих списка (`<select>`), один со странами, второй с городами для текущей выбранной страны. При изменении страны
+список городов должен обновляться.
+
+Доделать
+
+## Weather
+Сделайте возможность узнать погоду, используя код предыдущего задания и [Yahoo Weahter API](https://developer.yahoo.com/weather/)
+Для получения погоды по городу используйте 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 используйте:
+
+```javascript
+... 
+    request.open('GET', "https://query.yahooapis.com/v1/public/yql?" + 'q=' + encodeURIComponent("YQL-ЗАПРОС-С-ПРАВИЛЬНЫМ-ГОРОДОМ") + '&format=json'}, true)
+...
+```
+
+После получения данных выведите их в наглядном виде, используя возможности DOM. Например можете сделать что-то типа погодного виджета/информера.