jQuery $ .get () не работает в Drupal 6 - PullRequest
1 голос
/ 31 марта 2010

Итак, я столкнулся с этой проблемой. Я пытаюсь использовать $ .get () для взаимодействия с REST-приложением в Drupal 6.16, которое использует jQuery 1.2.6

У меня есть тестовая страница на рабочем столе, где я запускаю следующий код, и он успешно запускает предупреждение.

  url = 'http://api.twitter.com/1/help/test.xml';
  $.get(url, function(){alert("WORKING!!");}, 'xml');

Однако когда я пытаюсь запустить его в Drupal, предупреждение никогда не достигается. По какой-то причине эта функция никогда не срабатывает.

Есть идеи?

1 Ответ

2 голосов
/ 31 марта 2010

Все, что я должен сказать на это:

Одинаковая политика происхождения

В двух словах, политика разрешает скрипты, работающие на исходных страницах с того же сайта, чтобы получить доступ к каждому методы и свойства других без конкретные ограничения, но мешает доступ к большинству методов и свойств по страницам на разных сайтах.

И это именно то, что вы пытаетесь сделать. Отправка ajax-запроса в другой домен, в котором находится сценарий. Что не работает, потому что одна и та же политика происхождения запрещает кросс-доменные запросы.

Проверьте, предлагают ли API-интерфейс jsonp, и прочитайте документацию jQuery.ajax(), как использовать / делать кросс-доменные запросы jsonp. Теперь очевидно, что предупреждение никогда не достигается, поскольку вызов не завершается успешно, и, следовательно, jQuery не вызывает указанный вами обратный вызов успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...