我正在尝试在 Firefox 中为 Chrome 和 Greasemonkey 做一个用户脚本。
我正在使用 GM_xmlhttpRequest 因为它应该在两个平台上都可以工作。请求代码似乎在两种浏览器中都有效,但在 Firefox 中,responseText 是空的,而 Chrome 中我得到了预期的响应。
用户脚本代码:
// ==UserScript==
// @include *.website.org/Forum/Read.aspx?*
// ==/UserScript==
getstr = "thread="+thread+"&day="+getday;
GM_xmlhttpRequest({
method: "POST",
url: "http://www.other.org/js/gm/get.php",
data: getstr,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Content-type":"charset=utf-8"
},
onload: function(response) {
alert(response.responseText);
}
});
“other.org”网站上的 php 脚本:
$json = json_encode($array);
echo $json;
用户脚本使用 JSON.parse() 处理响应,但这在这里并不重要。
在 chrome 中,这很好用,但是在 Firefox 中 responseText 是空的。
我已经读到这可能与同源策略有关。但我不明白这可能是怎么回事以及如何解决它。非常欢迎所有帮助!