使用ajax jquery下载页面内容

时间:2010-05-05 09:18:23

标签: jquery ajax

问候, 如何使用ajax和jquery下载一些页面内容: 我正在做类似的事情(一个脚本中有两个版本):

$("p").click(function() {

    $('#result').load('http://google.com');

            $.ajax({
                url='www.google.com',
                success: function(data) {
                    $("result").html(data);
                    alert('Load was performed.');
                    var url = 'www.wp.pl';
                    $('div#result').load(url);
                    //var content = $.load(url);
                    //alert(content);
                    //$("#result").html("test");
                }
            });
});

但它不会返回任何内容

5 个答案:

答案 0 :(得分:7)

Due to restrictions您无法使用与托管此脚本的域托管在同一域中的AJAX下载网页内容。您的.ajax函数调用中也存在语法错误。它应该是这样的:

$.ajax({
    url: 'http://yourdomain.com/page1.htm',
    success: function(data) {
        $("result").html(data);
        alert('Load was performed.');
        var url = 'http://yourdomain.com/page2.htm';
        $('div#result').load(url);
    }
});

答案 1 :(得分:7)

您可以使用YQL来代理您的通话:

$.ajax({
  url:"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http://www.google.com'&format=xml&callback=callback",
  type: 'GET',
  dataType: 'jsonp'
});

  function callback(data){
    $('#result').html(data.results[0]);
  }

答案 2 :(得分:2)

虽然无法从Javascript直接查询当前域外部的主机,但您可以使用代理脚本来检索所需的数据。

使用jQuery进行跨域AJAX查询:http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

您还可以使用flXHR脚本,该脚本可以放入许多Javascript库(包括jQuery)中。

flXHR:http://flxhr.flensed.com/

答案 3 :(得分:1)

你也可以简单地调用一个PHP / ASP / RUby页面来反过来为你做外部调用,并以你需要的方式呈现信息。

1.  PAGE --> PHP --> External web
        (Ajax)

2.  PAGE <-- PHP <-- External web
      (callback)

答案 4 :(得分:1)

您需要使用名为JSONP的内容来跨域。 Seider已经发布了有关如何使用jQuery执行此操作的更多详细信息。