2015-02-25 2 views
0

Почему следующий сбой:

var url = "http://www.nfl.com/liveupdate/game-center/2012080953/2012080953_gtd.json"; 

$.getJSON(url, function(json){ 

    $("#jsondata").text(json); 

}).fail(function(error){ 

    $("#jsondata").text("fail: " + JSON.stringify(error, null, 4)); 

}); 

Вот результат: fail: { "readyState": 0, "status": 0, "statusText": "error" }

Я JSon linted URL-адрес, и это действует. Я просто не понимаю. Я использовал $.getJSON много проблем без проблем. Я просто не могу найти для этого рабочего решения. Это расширение .json?

+3

Когда я запустил это в своей консоли браузера, я получил: 'XMLHttpRequest не может загрузить http://www.nfl.com/liveupdate/game-center/2012080 953/2012080953_gtd.json? _ = 1424830190095. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение «http://stackoverflow.com», следовательно, не допускается. «Похоже, что nfl.com является умным и не позволяет другим сайтам обращаться к их JSON. –

+0

@jsve вы могли бы разработать? Если вы скопируете и вставьте ссылку в свой браузер, вы увидите данные json plain как день. Weird. – lucusp

+0

Там есть python lib, который использует эту точную ссылку в качестве примера. Я знаю 'python! = Javascript', и я недостаточно осведомлен, чтобы узнать, нужен ли мне код на стороне сервера для доступа. Может быть? – lucusp

ответ

1

Я не думаю, что указанный ресурс либо поддерживает CORS, либо jsonp .... поэтому они не отступают от других сайтов, чтобы использовать ресурс из браузера. Одним из возможных решений для вас является доступ к ресурсу из ваш сервер и передайте ответ вашему клиенту (браузеру) ...

т. е. из jQuery вы отправили запрос на свой сервер, оттуда с помощью http-клиента (на основе технологии вашей серверной) вы отправили запрос на (в этом случае ваш сервер будет действовать как прокси-сервер)