-5

我正在使用以下代码在小工具中获取 Google:

<html>
<head>
<title>Browser</title>
</head>
<body onload= "getListCollection()" style="width:900px; height:900px;" >
<div id="listAttributes" style="width:400px; height:400px;" ></div>
<script>

function getListCollection() {
    var url = "https://www.google.co.uk"  
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET',url,true, 'user', 'password');
    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4);
        {
            document.getElementById("listAttributes").innerHTML = xmlhttp.responseText
        }
    }
    xmlhttp.send(null);
}
</script>
</body>
</html>

我想知道如何使用 $ajax 做同样的事情?

我查看了不同的示例,但我不知道它们将如何适应这种情况。或者,如果您可以发布一些不错的 $ajax 教程。

当我将其更改为此时,它不起作用:

<html>
<head>
<title>Browser</title>
</head>
<body onload= "getListCollection()" style="width:900px; height:900px;" >
<div id="listAttributes" style="width:400px; height:400px;" ></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js">

$.ajax({
    url : 'https://www.google.co.uk',
    type : 'GET',
    success : function(data){
        $('#listAttributes').html(data);
    }
});
</script>
</body>
</html>

页面上什么也没有出现。

4

4 回答 4

6

这是代码的 jQuery 版本:

$.ajax({
    url : 'https://www.google.co.uk', //cross-domain? this won't work
    username : 'user',
    password : 'password',
    type : 'GET', //default is GET, but i put it here to clarify
    success : function(data){
        $('#listAttributes').html(data);
    }
});

有关更多详细信息和设置,请阅读jQuery.ajax()文档

于 2012-05-18T14:28:03.183 回答
2

像这样的东西:

$.ajax({
    url : "https://www.google.co.uk",
    type : "get",
    username : "user",
    password : "password",
    success : function(data) {
        document.getElementById("listAttributes").innerHTML = data;
    }
});

但是,由于您试图访问外部资源(即不是您的域),因此您的代码很可能无法工作。

查看JQuery Ajax 文档以获取更多详细信息。

于 2012-05-18T14:28:20.293 回答
2
$.ajax({
   url: url,
   username: 'user',
   password: 'password'
}).done(function (responseText) {
   document.getElementById('listAttributes').innerHTML = responseText;
   //or
   $("#listAttributes").html(responseText);
});

默认情况下,.ajax将使用 GET 方法并且是异步的,所以我省略了这些设置。如果您不需要用户名/密码,我会使用$.get().

于 2012-05-18T14:29:21.820 回答
2

它真的比纯 JavaScript 版本更简单更短,这里是:

function getListCollection() {
    $.ajax({
        url: "https://www.google.co.uk",
        username: "user",
        password: "password",
        success: function(data){
            $('listAttributes').html(data);
        }
    });
}

仅当站点支持跨域来源时才接受该请求。在此处查看jQuery.ajax() 文档

于 2012-05-18T14:37:41.157 回答