XMLHttpRequest无法在Google Chrome扩展程序中使用

时间:2012-06-03 05:46:05

标签: google-chrome-extension xmlhttprequest

我一直在打破这个问题已经有一段时间了。我正在尝试向google发送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中添加了权限。但是,当我调试它什么都不打印。只是一个空行。我在这做错了什么。

3 个答案:

答案 0 :(得分:6)

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();
}

答案 1 :(得分:4)

您的错误实际上是您将异步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);
}

答案 2 :(得分:0)

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);
}