Какой URL-адрес находится в вашем браузере, и какой URL-адрес используется для вызова Ajax? Браузеры имеют ограничения безопасности, которые не разрешают междоменные вызовы AJAX. Например, если я загружаю локальный файл:
http://localhost:20080/myCustomPage.html
и на этой странице я делаю ajax вызов
http://search.twitter.com/search?q=test
Я бы получил предупреждение от браузера. В зависимости от вашего браузера это может проявляться в значке предупреждения в нижнем углу (IE) или в ошибке в журнале javascript (firefox).
Существует способ обойти это в ОДНОМ конкретном случае. В этом случае любой запрос GET. Чтобы сделать это вместо вызова «ajax», вы включаете тег. Этот тег сценария будет затем прочитан и загружен. Подвох в том, что теперь вызов должен включать метод «обратного вызова», который вы можете реализовать на своей стороне, который вызывается с результатом вызова.
Так что вместо ответа типа:
{
"first_name": "peter",
"last_name": "parker"
}
вам нужно будет вернуть
myCallBackFunction({
"first_name": "peter",
"last_name": "parker"
});
В этом примере используется JSON, но вы можете легко использовать XML, HTML или любой другой формат результата, пока вызывается функция.
myCallbackFunction("INSERT RESPONSE TEXT HERE")
Этот метод обычно называется JSONP и, к счастью, реализован в общих библиотеках javascript, таких как jquery, с точки зрения клиента. Если вы управляете серверной стороной, вам нужно жестко закодировать оболочку callBackFunction или предоставить параметр, который позволяет клиенту установить его. И, к сожалению, если у вас нет библиотеки, вы ничего не сможете сделать, если владелец сервиса уже не предоставит эту функцию. К счастью, большинство служб Web 2.0, с которыми вы будете заниматься такими вещами, уже реализуют эту функцию.