如何通过javascript从chrome扩展中的XMLHttpRequest接收数据?

时间:2014-10-23 10:15:35

标签: javascript jquery google-chrome-extension xmlhttprequest

我想将网页上的请求发送到Chrome扩展程序,然后在chrome extenison中接收数据和读取数据,有什么方法可以解决这个问题吗?

例: 在doman www.nope.com/sendRequest.html将通过url chrome-extension://xxxxxxx/getData.htm?isToken = abc将数据发送到chrome扩展,然后扩展将接收并且可以读取数据“isToken”。

这是我在sendRequest.html

中的代码
<script type="text/javascript">
    function sendRequest() {
        document.write("Sending request");
        var req = new XMLHttpRequest();
        req.open("POST", "chrome-extension://xxxxxxxxxx/getData.htm?isToken=abc", true);
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                if (req.status == 200) {
                    alert(req.responseText);
                    document.write("OK");
                }
            }
        };
        req.send();
    }
</script>

在chrome扩展文件getData.htm中,我该如何获取数据?

1 个答案:

答案 0 :(得分:0)

(编辑:你发送了什么类型的数据?你可以通过GET传递它作为JSON编码的字符串吗?JSON.stringify()和JSON.parse()可能对你有用。)) p>

以下内容可能有助于访问POST / GET数据。 :))

据我所知,最好使用某种形式的服务器端脚本来完成。您可以在JS中使用window.location.search,并拆分字符串并执行必要的功能,但我认为服务器端脚本可能效果最好。 :)

JS实现的一个例子如下:

   var url = window.location.search;
   var params = url.substr(url.IndexOf("?") - 1, 30);

这将获取参数(从?(包括)开始,并继续30个字符。您还可以使用类似var params = url.substr(url.IndexOf("?") - 1, url.length);的内容来获取整个参数列表。

从那时起你如何使用它取决于你,但你可以通过switch()或任何你需要的方式传递它。 :)

显然,这是一个chrome扩展会限制您对任何服务器端处理的选择。 :/

编辑:上面的内容将放在getData.htm中。 :)