Не удалось получить ответ JSON - PullRequest
0 голосов
/ 20 марта 2012
    var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json";

    $.ajax(
    {
     url:myurl,
     type:"POST",
     dataType:"JSONP",
     success:function(myObj)
       {
        console.log(myObj);  
       }
   });

Я попытался использовать сокращение getJSON, но консоль выдает ошибку «использовать запрос POST». И используя приведенный выше код, консоль заявляет, что «Неверная метка».

Ответы [ 3 ]

1 голос
/ 20 марта 2012

Используйте $. GetJSON () , это сокращенная функция и очень эффективная.

var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json";

$.getJSON(
  myurl,
  function(data) {
      //manipulate your json
});

Но для запроса JSONP в URL-адресе должен быть параметр обратного вызова

Как указано в документации [здесь]

Если URL содержит строку "callback =?" (или аналогичный, как определено серверным API), запрос обрабатывается как JSONP.

0 голосов
/ 20 марта 2012

Междоменный JSONP вовсе не AJAX. Он не использует XMLHttpRequest. Это не более чем динамический элемент скрипта, который загружает код JavaScript.

Попытка:


var req = $.ajax({
    url : myurl,
    dataType : "jsonp"
});

req.success(function(myObj) {
    console.log(myObj);
});

req.error(function() {
    console.log('some error occured');
});

Я думаю, что конечный сервер "https://raw.github.com" не поддерживает JSONP. Поэтому вам, вероятно, придется создать на вашем сервере прокси-конечную точку для доступа к этим данным. По сути, создайте конечную точку на вашем собственном сервере, которая загружает эти данные, используя любую Метод имеет смысл (curl и т. д.) и возвращает его точно как есть. Тогда вы можете использовать обычный AJAX. Надеюсь, это поможет

0 голосов
/ 20 марта 2012

Вы должны изменить код, попробуйте это:

$.post(
  myurl,
  {},
  function(data){
    alert(data);
  },'json'
);

переменная 'data' является объектом json.

...