Javascript firefox中的JSON.stringify错误

Javascript firefox中的JSON.stringify错误,javascript,json,firefox,Javascript,Json,Firefox,我正在为我的应用程序开发一个web分析 客户端,我通过JSON.stringify(window.location)向服务器发送window.location对象 该对象在chrome浏览器中进行了适当的字符串化,即opera。。。但在Firefox中,它只返回{“构造函数”:{}} Firefox怎么了?是interface的一个实例。您可能希望将其url作为字符串获取。试试吧。奇怪的解决方案确实有效 var window_location = {}; for (var i in window

我正在为我的应用程序开发一个web分析

客户端,我通过
JSON.stringify(window.location)
向服务器发送
window.location
对象

该对象在chrome浏览器中进行了适当的字符串化,即opera。。。但在Firefox中,它只返回
{“构造函数”:{}}


Firefox怎么了?

是interface的一个实例。您可能希望将其url作为字符串获取。试试吧。

奇怪的解决方案确实有效

var window_location = {};
for (var i in window.location) {
    window_location[i] = window.location[i];
}
alert(JSON.stringify(window_location));

请看下面的操作…

或者,您不能简单地创建一个新对象,而不是简单的KVP对象吗

JSON.stringify({
    href:     window.location.href,
    protocol: window.location.protocol,
    host:     window.location.host,
    hostname: window.location.hostname,
    port:     window.location.port,
    pathname: window.location.pathname,
    search:   window.location.search,
    hash:     window.location.hash,
    username: window.location.username,
    password: window.location.password,
    origin:   window.location.origin
});

我不知道为什么它不能在FireFox下工作(我假设这与
window.location
的属性实际上是FireFox中的getter/setter这一事实有关),但这里有一个简单的解决方案:只需复制对象

var copy = {};
for (var i in window.location) {
    copy[i] = window.location[i];
}
JSON.stringify(copy);

@奇怪的是,我很确定OP想要发送当前页面的URL。OP在哪里声明?还有更多:他明确表示“对象在chrome中被正确地字符串化”,所以他实际上希望对象被jsonified。你也可以jsonified字符串。和href包含来自对象的所有信息。但是它不能方便地解析。它涉及的属性不是对象本身的属性,而是原型上的属性,这是规范所要求的。。。