2017-08-23 75 views
1

在Chrome,Firefox,Opera中测试。JSON.stringify在不同的URL上给出不同的结果

  1. 打开URL https://www.patro.cz/
  2. 打开JS控制台,并写上:JSON.stringify([])
  3. 输出应该是:"[]"

enter image description here

问题是...

  1. 打开URL https://www.patro.cz/kategorie/male-domaci-spotrebice
  2. 打开JS控制台,并写:JSON.stringify([])
  3. 输出应该是:"[]"""[]""

enter image description here

当我试图重新创建原始对象这样:JSON.parse(JSON.stringify([]))第一个URL是一个数组[]这是正确的,但在第二个它是一个字符串"[]"

我的问题是如何解决这个问题。我想在两个URL上获得一个数组(正确的结果)。这是浏览器中的一些错误吗?

谢谢你们

+0

@Derek朕会功夫你可以把第二个网址的截图发给我吗? – mspiderv

+0

我想我做错了什么。第二个链接没有返回'“[]”',但是'JSON.stringify'没有被覆盖。这很奇怪。 –

回答

1

这似乎是问题是,你的网页是使用prototype.js 1.6,这是自10年前,它打乱了你的页面的对象。

的问题是,增加的Prototype.js到.toJSONArray.prototype是非常有问题的(.toJSON指示JSON.stringify如何序列化对象实例。)删除方法,它应该工作的罚款。

delete Array.prototype.toJSON; 
JSON.stringify([]); 

获取尽快摆脱库成为可能。

相关问题