Я получаю данные JSON от OpenWeatherAPI. Правильный формат для URL является
http://api.openweathermap.org/data/2.5/weather?q=Chicago&APPID=34lkj349gga9s8dug9sd8hg
Где? Д = {город} & APPID = {} api_key
Пусть я предоставить URL добротность параметров, и APPID параметров. Я использую функцию $ .getJSON для извлечения данных JSON. Знает ли $ .getJSON, что URL-адреса отформатированы с помощью?, = И &, или мне нужно написать их с помощью моих собственных параметров? В настоящее время все, что я возвращаю, - localhost /?
Вот короткая программа, которую я написал. Хорошо прокомментировано, чтобы объяснить, как я ожидаю, что это сработает.
// Here is how the final url should look:
// api.openweathermap.org/data/2.5/weather?q=Chicago&APPID=33lkr3jlfj39asdflk
var weatherSearch = '';
// weather-search is my html form id. On submit, send the input
// (which is city name) to the function getWeather.
$('#weather-search').submit(function(event) {
weatherSearch = $('#weatherQuery').val();
event.preventDefault();
getWeather(weatherSearch);
});
// getWeather has params q (city name), and APPID (API key).
function getWeather(weatherSearch) {
var params = {
q: weatherSearch,
APPID: '33lkr3jlfj39asdflk'
};
// This is the url that goes before the params.
url = 'http://api.openweathermap.org/data/2.5/weather/';
// Request data using url and params above.
// Does $.getJSON format the url properly?
$.getJSON(url. params, function(data) {
// Pass JSON data to showWeather function.
showWeather(data.items);
console.log(data.items);
});
}
function showWeather(weather) {
// Show JSON data (weather) in html div id="weatherResults"
$('#weatherResults').html(weather);
}
Это html, на который ссылается JavaScript.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>weather</title>
<script src="/jquery.js"></script>
<script src="openweather.js"></script>
</head>
<body>
<form id="weather-search">
<input type="text" id="weatherQuery"></input>
<input type="submit" value="Submit"></input>
</form>
<div id="weatherResults">
</div>
да, но конкатенация строк в JavaScript не с '.' это с '+' -> 'url. params' на самом деле 'url + params' – Sabbin
, он не может получить результат, поскольку ему нужен метод POST. –
@KalpeshSingh, что совсем не правильно –