GM_xmlhttpRequest responseText在Firefox中为空,但在Chrome中是完美的
GM_xmlhttpRequest responseText empty in Firefox but perfect in Chrome
我正在尝试在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;
userscript使用JSON.parse()处理响应,但这在这里并不重要。
在chrome中,这非常有效,但firefox中的responseText是空的。
我读到过,这可能与同源政策有关。但我不明白这可能是怎么回事,也不知道我该怎么解决。我们非常欢迎所有的帮助!
对象不能有多个名称相同的属性。将字符集标头值放入第一个Content-Type
中。
此外,请尝试添加更多标头,特别是Content-Length
。最安全的方法是检查Firefox在正常POST请求中发送的标题(当您手动提交表单时),并将其全部复制。
相关文章:
- jQuery自动完成在Firefox中运行良好,但在Chrome中则不然
- Javascript下载在firefox中停止,但在Chrome中有效
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- 这个jQuery代码在Mozilla上运行良好,但在Chrome,Opera,Safari上则不然
- 火狐中的多个问题,但在 chrome 中工作正常,没有一个问题
- 在Firefox中工作正常,但在Chrome中不能
- Javascript正则表达式在IE中失败,但在Chrome和Edge中工作
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- Jquery.hide()和.show()在firefox上运行速度较慢,但在chrome上运行良好
- 在getJSON之后构建HTML在Safari中有效,但在Chrome或Firefox中无效
- JS函数如何/为什么不能'不能在代码中执行,但在chrome控制台中运行良好
- html数据属性在firefox中使用javascript时没有按预期显示,但在chrome中显示正确
- ng-click在IE中不起作用,但在CHROME中工作正常
- event.prventdefault()在mozilla中不起作用,但在chrome中运行良好
- 代码在firefox中运行良好,但在chrome中不起作用.为什么?
- 拖放文件时,dataTransfer.items属性在Firefox和IE中未定义,但在Chrome中未定义
- jQuery scrollTop没有'不能在FF或IE中制作动画,但在chrome中效果良好
- innerHTML=Date()在fiddle中工作,但在Chrome或IE中不工作
- Fullpage.js不能在Mozilla上运行,但在Chrome上运行良好