С чего вы взяли, что rubygems.org вообще поддерживает JSONP?Я не вижу никакого упоминания о JSONP в документации , и когда я делаю это:
lynx -dump -source 'http://rubygems.org/api/v1/gems/rails.json?jsoncallback=x'
, я получаю тот же самый старый JSON, что и из
lynx -dump -source 'http://rubygems.org/api/v1/gems/rails.json'
Единственное различие между ними заключается в изменении downloads
и version_downloads
, но это ожидаемо.
Когда вы используете jsoncallback=?
в строке запроса, jQuery настроит функцию обратного вызова иПредположим, что удаленный URL отправит обратно JavaScript (не JSON!), который вызовет указанную функцию.Таким образом, если удаленный сервис отправляет обратно JSON, когда вы ожидаете JavaScript, браузер в конечном итоге попытается интерпретировать JSON как JavaScript и расстроится, потому что
{"dependencies":{"runtime":[{"name":"action ...
не является допустимым оператором JavaScript.Это похоже на ошибку, которую вы видите.
Я думаю, вам придется проксировать JSON через ваш собственный сервер.Вам понадобится контроллер на вашем сервере, который делает вызов для получения JSON, а затем просто возвращает его обратно в ваш JavaScript, это поможет вам обойтись как без поддержки JSONP, так и с вашей проблемой междоменных областей в вашем клиенте.