Функция успеха JQuery.ajax возвращает пустое значение - PullRequest
1 голос
/ 05 мая 2010

У меня есть очень простая функция AJAX в JQuery:

$.ajax({
    url: "http://www.google.com",
    dataType: "html",
    success: function(data) {
        alert(data);
    }
});

Но data всегда пустая строка, независимо от того, на какой URL я иду ... Почему это так?Я запускаю это локально на http://localhost:3000 и использую JQuery 1.4.2.

Однако, если я делаю локальный ответ, как этот:

$.ajax({
    url: "http://localhost:3000/test",
    dataType: "html",
    success: function(data) {
        alert(data);
    }
});

... он возвращаетHTML-страница по этому адресу.Что мне здесь не хватает?

Ответы [ 2 ]

4 голосов
/ 05 мая 2010

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

Вы не можете сделать запрос:

  • Другой домен
  • Другой порт, даже в том же домене
  • Родственный домен

Вы можете сделать запрос:

  • Тот же домен
  • Субдомен текущего домена

Подробнее об этом можно прочитать здесь

2 голосов
/ 05 мая 2010

Вы не можете загружать данные из других доменов. Это функция безопасности.

Вот ссылка, в которой рассказывается о том, как создать прокси на вашем веб-сервере, чтобы обойти его ограничения.

http://jquery -howto.blogspot.com / 2009/04 / междоменное-Ajax-выполнение запроса-с-jquery.html

...