【发布时间】:2012-08-30 03:41:55
【问题描述】:
我尝试使用 PHP.js 的序列化包序列化对象数据以通过 php 保存到文件中。
铬:很好 FF:很好 IE9:很好 兼容模式下的 IE9(本质上是 IE7):不好。
来自控制台的错误:
SCRIPT5022: Exception thrown and not caught
serialize.min.js, line 144 character 55
序列化后的数据基本上是这样的:
a:180:{s:40:"Aleksis Kiven tie 15<br>04200 Kerava<br>";a:2:{i:0;d:60.4012598;i:1;d:25.09659910000005;}
未序列化:
{"Aleksis Kiven tie 15<br>04200 Kerava<br>": [60.4012598, 25.09659910000005]}
处理缓存的 Javascript 如下所示:
function saveCache(data) {
sdata = serialize(data);
$.ajax({
type: 'POST',
url: 'http://localhost/foobar/files/coordinates.php',
data: {
'do': 'write',
'data': sdata
}
});
}
我正在按地址将地理编码结果缓存到文本文件中。
如果我没有道理,请多问。
主要编辑:我更正了所指出的示例。同样重要的是问题确实发生了变化。这实际上不是 serialize() 的问题,而是 unserialize() 的问题。
【问题讨论】:
-
您有在 PHP 中实际工作的示例吗?您的序列化数据示例不适用于 PHP 本身中的 unserialize() 并且您的未序列化示例不是有效的 JavaScript,因此我无法真正对其进行测试。大约两年前有一个提交来修复 IE 问题,所以还要确保你使用的是最新的代码。
-
很抱歉,但我不知道它会有什么帮助。我的序列化和非序列化示例无效并不是真正的问题。关键是一切正常,除了 IE7,这意味着 IE7 中存在可以或不能规避的错误或无功能。我希望有人能告诉我,如果我尝试做的事情首先是可行的,那就是在 IE7 中。在其他浏览器中它工作正常。
-
这会有所帮助,因为我们实际上可以自己确认和调试它。
标签: internet-explorer-7 jsonserializer phpjs