parsererror "недопустимая метка" с jQuery и API геолокации Yahoo - PullRequest
0 голосов
/ 24 июля 2011

Я использую jQuery для доступа к API геолокации Yahoo.Хотя я могу успешно получать данные с их серверов, я не могу получить jQuery для успешного анализа данных.Я пробовал оба метода:скорее всего, результат того, что JSON не заключен в скобки, но я не могу понять, как обернуть данные до того, как они будут проанализированы.Я даже не уверен, что это проблема.

Вот мой код:

  $(document).ready(function() {
    var url  = "http://where.yahooapis.com/geocode?q=39.0334171,-94.8320452&gflags=R&flags=JT&appid=supersecretappid&callback=?";

    $.getJSON(url, function() { alert("success"); })
      .error(function(data) { alert(JSON.stringify(data)); });

  });

Альтернативная версия, использующая только $ .ajax, выглядит следующим образом:

$.ajax({
  url: url,
  data: {},
  dataType: "jsonp",
  contentType: "text/plain",
  success: function(json) {
    alert("success");
  },
  error: function(x,y,z) {
    alert(JSON.stringify(x));
  }
});

Большое спасибо заранее.

1 Ответ

1 голос
/ 24 июля 2011

API, к которому вы пытаетесь обратиться, не поддерживает JSONP.Поэтому вы не можете использовать его с javascript из-за той же политики происхождения ограничений.Попробуйте вставить следующий URL в вашем браузере:

http://where.yahooapis.com/geocode?q=39.0334171,-94.8320452&gflags=R&flags=JT&appid=supersecretappid&callback=foo

Посмотрите, как параметр callback полностью игнорируется?Сервер возвращает чистый JSON, а не JSONP, который вам нужен.В качестве обходного пути вы можете написать серверный скрипт на вашем домене, который будет служить мостом между Yahoo и вашим доменом.Затем вы отправите запрос AJAX на ваш скрипт.

...