我尝试序列化对象数据,通过PHP使用PHP.js的序列化包保存到文件中。PHP.js unserialize()错误IE7
铬:细 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中是这样。在其他浏览器中,它工作正常。 –
这会有所帮助,因为我们实际上可以自己确认和调试它。 –