【发布时间】: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(旧版)浏览器,因此您并不需要检查。
-
代码看起来不错,唯一想到的是,
var1和var2是否已定义或包含可能阻止其进入if本身的值 coz -
当你说它不起作用时......页面根本没有被请求,还是只是在另一端没有收到参数......另外,我注意到你写过:“var1="+var1+"var1="+var1;而不是 "var1="+var1+"var2="+var2; ...在您的实际脚本中是这样还是只是您的问题?
标签: javascript ajax google-chrome google-chrome-extension xmlhttprequest