1

我已经为此烦恼了很长时间。我正在尝试向谷歌发送一个 xmlhttprequest 并将相应的数据记录到我的控制台中。我的代码:

sendRequest();
function sendRequest()
 {
              var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://www.google.com",
    true);

req.send(null);
console.log(req.responseText);
 }

我在 manifest.json 中添加了权限。但是,当我调试时,它什么也没打印。只是一个空行。我在这里做错了什么。

4

3 回答 3

5

Dmitri Sorin 的回答会很好。这是一个更通用的版本:

sendRequest('http://www.google.com/', function (response) {
    alert('My request returned this: ' + response);
}); 

function sendRequest(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            callback(xhr.responseText);
        }
    };
    xhr.open("GET", url, true);
    xhr.send();
}
于 2012-06-03T19:03:13.107 回答
3

您的错误实际上是您将异步 XMLHttpRequest 函数视为同步。当您调用 console.log 时,Google 没有响应。您的代码应如下所示:

sendRequest();

function sendRequest() {
    var req = new XMLHttpRequest();
    req.open("GET", "http://www.google.com", true);
    req.addEventListener("load", function(e) {
        console.log(req.responseText);
    }, false)

    req.send(null);
}
于 2012-06-03T07:22:29.603 回答
-1
sendRequest();

function sendRequest() {
    var req = new XMLHttpRequest();
    req.open("GET", "http://www.google.com", false );// set the third argument to false
    req.send(null);
    console.log(req.responseText);
}
于 2014-12-11T14:11:17.637 回答