Как получить JSON кроссдоменно, но без callback?

Есть сайт apiserv.ru/user/1
1)параметры принимаются только таким форматом, т.е. через слеш
2) нельзя использовать обертки и каллбеки
если вызвать эту ссылку то нам вернется

{name:"alex", age: "16"}

на этом сайте нельзя прописывать Access-Control-Allow-Origin
Нужно использовать хитрый JSON через генерированный<script>, так называемый JSONP
выполняю у себя на компе:
$.ajax({
var param1 = 'user';
var param2 = '1';
    url: "http://apiserv.ru/"+param1 +"/"+param2 +"/",
    jsonpCallback: "my_callback_function",
    dataType: "jsonp"
	});


Код будет работать только в том случае, если тот json будет обернут my_callback_function, т.е. my_callback_function({name:"alex", age: "16"}) , но обертки не существует, такая специфика сервера.
Подскажите плиз как принять JSON кросдоменно без использования каллбека?
  • Вопрос задан
  • 384 просмотра
Пригласить эксперта
Ответы на вопрос 3
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Комментировать
riot26
@riot26
<:З )~~
на своём домене с серверной стороны брать json, и аяксом стучаться уже к своему серверу
Ответ написан
mourr
@mourr
Passionate JS developer
Если нельзя поднять свою проксю и настроить CORS, можно использовать YQL и JQuery-обертку вокруг нее
YQL это такая себе свободная прокся с Access-Control-Allow-Origin : *, через которую можно запрашивать что угодно

Как пример (код готов к использованию, но данные выводит в консоль браузера):

function crossdomainJSON(url) {
      var query = "select * from json where url='" + url + "'";
      query = encodeURIComponent(query);
      var dataUrl = 'https://query.yahooapis.com/v1/public/yql?q='.concat(query).concat("&k=&e=1&format=json");
      $.getJSON(dataUrl, function(data) {
          console.log(data.query.results.json);
      })
  }

  crossdomainJSON('http://api.openweathermap.org/data/2.5/weather?id=2172797&appid=44db6a862fba0b067b1930da0d769e98');


crossdomainJSON можно вызвать для ЛЮБОГО url который содержит правильный JSON-ответ с любого другого домена (api.openweathermap.org приведен просто для примера)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы