Подтвердить что ты не робот

Jquery ajax получить answeretext от http url

Ни:

var response = $.ajax({
    type: "GET",   
    url: "http://www.google.de",   
    async: false,
    success : function() {
        alert (this);
    }
});

Nor:

var response2 = $.get("http://www.google.de", function(data) {
    alert("Data Loaded: " + data);
});

дайте мне объект. Как получить доступ к responseText?

4b9b3361

Ответ 1

Вы просто должны переписать его следующим образом:

var response = '';
$.ajax({ type: "GET",   
         url: "http://www.google.de",   
         async: false,
         success : function(text)
         {
             response = text;
         }
});

alert(response);

Ответ 2

Как сказал Карим, кросс-домен ajax не работает, если сервер не разрешает его. В этом случае Google этого не делает, НО, есть простой трюк, чтобы обойти это во многих случаях. Просто попросите свой локальный сервер передать контент, полученный через HTTP или HTTPS.

Например, если вы используете PHP, вы можете:

Создайте файл web_root/ajax_ответчики/google.php с помощью:

<?php
  echo file_get_contents('http://www.google.de');
?>

И затем измените свой код, чтобы подключиться к нему, а не к домену Google непосредственно в javascript:

var response = $.ajax({ type: "GET",   
                        url: "/ajax_responders/google.php",   
                        async: false
                      }).responseText;
alert(response);

Ответ 3

в jquery ajax-функциях, сигнатура обратного вызова успеха:

function (data, textStatus) {
  // data could be xmlDoc, jsonObj, html, text, etc...
  this; // the options for this ajax request
}

в зависимости от типа данных, который вы задали, используя параметр dataType, вы получите аргумент "data".

из документов:

dataType (String) По умолчанию: Intelligent Guess (xml или html). Тип данных, которые вы ожидаете от сервера. Если ни один не указан, jQuery будет интеллектуально передавать либо responseXML, либо responseText в ваш обратный вызов успеха, основанный на типе ответа MIME.

Доступные типы (и результат, переданный в качестве первого аргумента для вашего обратного вызова успеха):

"xml": возвращает XML-документ, который может обрабатываться через jQuery.

"html": возвращает HTML как обычный текст; теги script оцениваются при вставке в DOM.

"script": оценивает ответ как JavaScript и возвращает его как обычный текст. Отключает кеширование, если не используется опция "кеш". Примечание. Это приведет к отправке POST в GET для запросов удаленного домена.

"json": оценивает ответ как JSON и возвращает объект JavaScript.

"jsonp": загрузка в блоке JSON с использованием JSONP. Будет добавлен дополнительный "? Callback =?" до конца вашего URL-адреса, чтобы указать обратный вызов. (Добавлено в jQuery 1.2)

"text": простая текстовая строка.

см. http://docs.jquery.com/Ajax/jQuery.ajax#options

Ответ 5

Сначала вам нужно загрузить плагин JQuery, чтобы разрешить запросы через кросс-домен. Загрузите его здесь: https://github.com/padolsey/jQuery-Plugins/downloads

Импортируйте файл с именем query.xdomainsajax.js в свой проект и включите его в этот код:

<script type="text/javascript" src="/path/to/the/file/jquery.xdomainajax.js"></script>

Чтобы получить html внешней веб-страницы в текстовой форме, вы можете написать это:

$.ajax({
    url: "http://www.website.com",
    type: 'GET',
    success: function(res) {
        var text = res.responseText;
        // then you can manipulate your text as you wish
    }
});

Ответ 6

На самом деле вы можете делать запросы с перекрестными доменами, например, Firefox, для этого: http://ajaxian.com/archives/cross-site-xmlhttprequest-in-firefox-3

Webkit и IE8 также поддерживают его каким-то образом.

Ответ 7

Так как запросы jQuery AJAX терпят неудачу, если они являются междоменными, вы можете использовать cURL (в PHP) для настройки прокси-сервера.

Предположим, что файл PHP responder.php имеет следующее содержимое:

$url = "https://www.google.com";
$ch      = curl_init( $url );
curl_set_opt($ch, CURLOPT_RETURNTRANSFER, "true")
$response= curl_exec( $ch );
curl_close( $ch );
return $response;

Ваш запрос AJAX должен быть указан в этом файле responder.php, чтобы он выполнял междоменный запрос.

Ответ 8

попробуйте это

alert( data['responseText'] );