【问题标题】:xmlHttpRequest via Google Chrome Extension, simple POST to .php pagexmlHttpRequest 通过 Google Chrome 扩展,简单的 POST 到 .php 页面
【发布时间】:2012-09-05 12:02:33
【问题描述】:

我已经花了几个小时试图弄清楚这一点。

我有一个记录一些数据的基本 Google Chrome 扩展程序,我希望通过 xmlHttpRequest 将数据发送到外部 php 页面(使用 POST)。

在我的权限页面 (manifest.json) 中,我有:

"permissions": [
    "tabs",
    "http://www.mywebsite.com/",
    "https://www.mywebsite.com/",
    "http://*/",
    "https://*/*"
],

在我的内容脚本中,我有代码:

if (var1 && var2) {
    var xmlhttp = null;

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    var url = "http://www.mywebsite.com/datalogger.php";
    var params = "var1="+var1+"var1="+var1;
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.open("POST", url, true);
    xmlhttp.send(params);
}

但是(您猜对了!)我的代码不起作用。 谁能弄清楚它有什么问题?

【问题讨论】:

  • (这不是您问题的答案)但是当它是 chrome 扩展时,您为什么要使用 ActiveXObject。
  • 错了吗?我几乎没有编写 google-chrome-extensions 的经验。
  • 这并没有错,只是 chrome 有 XMLHttpRequest 对象,而 ActiveXObject 用于 IE 或 Microsoft(旧版)浏览器,因此您并不需要检查。
  • 代码看起来不错,唯一想到的是,var1var2 是否已定义或包含可能阻止其进入 if 本身的值 coz
  • 当你说它不起作用时......页面根本没有被请求,还是只是在另一端没有收到参数......另外,我注意到你写过:“var1="+var1+"var1="+var1;而不是 "var1="+var1+"var2="+var2; ...在您的实际脚本中是这样还是只是您的问题?

标签: javascript ajax google-chrome google-chrome-extension xmlhttprequest


【解决方案1】:

http://www.mywebsite.com/ 是一个match pattern,仅匹配域的根部分(即路径“/”)。您应该使用http://www.mywebsite.com/* 和最后一个星号。您应该将最终结果应用于您的所有主机权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    相关资源
    最近更新 更多