跨域AJAX请求返回HTML(不是jsonp)

时间:2013-11-17 23:16:44

标签: javascript jquery html ajax cross-domain

我正在使用此插件: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 id,然后div id应该看起来与我调用的页面完全一样,就好像我要加载那个页面一样独立于浏览器窗口。

谢谢!

2 个答案:

答案 0 :(得分:0)

引用的插件使用Yahoo YQL service作为获取远程页面的代理。 YQL将返回json,您应该能够在data.responseText中访问您的数据。这是插件的限制文档

确保您可以将数据记录到控制台并查看其结构。

使用YQL控制台创建满足刮擦需求所需的URL,使用XPATH语法,可以在没有插件的情况下做同样的事情

答案 1 :(得分:0)

您可以尝试Ajax-cross-origin jQuery插件。

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

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