Междоменный запрос AJAX возвращает HTML (не jsonp)

Я использую этот плагин: https://github.com/padolsey/jquery.fn/tree/master/cross-domain-ajax/

И это мой код:

   $.ajax({
      dataType: 'html',
      type: 'GET',
      url: 'http://www.google.com',
      crossDomain: true
  }).done(function(data) { 
       $("#box").html('').append(data);
  });

Насколько я понимаю, даже несмотря на то, что у меня есть dataType: 'html', я почти уверен, что это все еще дает мне ответ в JSONP.

Я хочу получить весь HTML-код страницы, все, что мне нужно для полного отображения страницы. Сравнимо с iframe. Причина, по которой мне нужно сделать это через ajax, заключается в том, что в конечном итоге мне нужно будет передать параметры URL-адресу, который я использую. Каков наилучший способ вернуть содержимое страницы в полном формате HTML, чтобы я мог отобразить страницу? Нужно ли мне что-то делать, чтобы вернуть скрипты/таблицы стилей страниц?

По сути, URL-адрес, который я вызываю, должен быть возвращен, чтобы я мог добавить возврат к идентификатору div, и этот идентификатор div должен выглядеть точно так же, как страница, которую я вызывал, как если бы я должен был загрузить эту страницу независимо в окно браузера.

Спасибо!


person jamesdlivesinatree    schedule 17.11.2013    source источник
comment
Я написал ответ на этот вопрос здесь: Загрузка междоменной html-страницы с помощью jQuery AJAXпоследняя, ​​поддерживает https   -  person jherax    schedule 26.06.2014


Ответы (2)


Вы можете попробовать Ajax-кросс-происхождение плагина jQuery.

http://www.ajax-cross-origin.com/

    $.ajax({
        crossOrigin: true,
        url: url,
        success: function(data) {
            console.log(data);
        }
    });
person Ninioe    schedule 03.08.2014

Упомянутый подключаемый модуль использует сервис Yahoo YQL в качестве прокси для получения удаленной страницы. YQL вернет json, и вы сможете получить доступ к своим данным в data.responseText. Это для ограниченных документов для плагина

Чтобы убедиться, что вы можете записать данные в консоль и увидеть их структуру.

Можно сделать то же самое без плагина, используя консоль YQL для создания URL-адреса, необходимого для удовлетворения ваших потребностей в очистке, используя их синтаксис XPATH.

person charlietfl    schedule 17.11.2013
comment
Я сделал предупреждение (data.responseText); и получил неопределенность, когда я делаю предупреждение (данные); Я получаю объект Объект, поэтому я знаю, что он что-то получает. - person jamesdlivesinatree; 18.11.2013
comment
нужно войти в консоль, чтобы увидеть структуру - person charlietfl; 18.11.2013
comment
плагин выглядит довольно старым, возможно, YQL изменился с момента его создания - person charlietfl; 18.11.2013
comment
как вы думаете, было бы лучше, если бы я загрузил свою внешнюю страницу в iframe и использовал javascript, чтобы просто добавить параметры к URL-адресу, который я хотел бы, чтобы iframe загружал? это только запрос на получение, который отображает статический контент - person jamesdlivesinatree; 18.11.2013
comment
все зависит от того, какова цель... если вам просто нужен html без css... можно использовать прокси-сервер, чтобы получить его, тогда вы делаете вызов axax на сервер - person charlietfl; 18.11.2013