есть пара проблем.Сначала вам нужно добавить &callback=?
в конец строки запроса, чтобы разрешить междоменный домен.
$.getJSON('http://ws1.airnowgateway.org/GatewayWebServiceREST/Gateway.svc/forecastbyzipcode?zipcode=94954&format=json&key=B868EA39-1D92-412A-96DE-DCF5ED30236D&callback=?',
function(data)
{
alert(data.forecast[0]);
}
);
После этого вы получите ошибку Uncaught SyntaxError: Unexpected token :
.Это потому, что вы ожидаете json
данных, но заголовки на сервере отправляют text/html
- не application/json
.Посмотрите на консоль, когда вы запустите эту скрипку , вы увидите ошибки.
Следовательно, вы не можете получить данные из междоменной области, потому что вы должны использовать jsonp- который требует заголовка для правильной отправки.
Если это ваш API, тогда вам просто нужно отправить правильный заголовок, в противном случае вам нужно связаться с разработчиками и спроситьчтобы исправить это.
В качестве альтернативы
Если ни один из перечисленных выше вариантов не работает, вы всегда можете создать прокси-скрипт, который будет получать содержимое jsonнакормить вас и повторить его.Вот что на PHP:
<?php
// myproxy.php
header('Content-type: application/json');
$zip = $_GET['zip'];
$results = file_get_contents('http://ws1.airnowgateway.org/GatewayWebServiceREST/Gateway.svc/forecastbyzipcode?zipcode=' . $zip . '&format=json&key=B868EA39-1D92-412A-96DE-DCF5ED30236D');
echo $results;
?>
Затем вы просто указали бы свой $ .getJSON на этот скрипт на вашем сервере:
$.getJSON('/myproxy.php?zip='+zip,
function(data)
{
var mydata = jQuery.parseJSON(data);
alert(mydata.forecast[0]);
}
);