全部, 我知道那里已经存在这个问题: jquery file upload - IE done callback data.result issue
但是,我遇到了同样的问题而且不知道如何解决它。我有一些看起来像这样的工作代码(基于另一篇文章中的建议):
if($.fn.wl_File) $.fn.wl_File.defaults = {
forceIframeTransport: true,
onDone: function (e, data) {
var result = jQuery.parseJSON(data.result);
var filename = result[0].name;
}
}
除了IE之外,它在Firefox,Chrome等中完美地提取回调信息。但是,我仍然从IE中获取[object Object]。当我在Chrome中执行console.log(data.result)
时,我得到以下结果:
[{
"name": "1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"size": 35535,
"type": "image\/jpeg",
"url": "\/web\/upload\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"thumbnail_url": "\/web\/upload\/thumbnails\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"delete_url": "\/web\/upload.php?file=1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"delete_type": "DELETE",
"upload_type": "video_montage",
"insert_id": "288"
}]
我不知道如何解决这个问题。根据我的代码,有人能指出我正确的方向吗?
仅供参考,我使用以下主题:http://revaxarts-themes.com/?t=whitelabel调用jquery上传插件,这就是为什么我的代码在顶部看起来有点不同但它与插件代码基本相同。
在这个令人沮丧的问题上,我们非常感谢任何帮助!
答案 0 :(得分:2)
我从我在问题中提到的帖子中找到了解决方法。但是,我不得不扩展它以满足不同的浏览器。最初的答案是关于如何从IE获取数据,但该方法不适用于其他浏览器。我必须添加一个if语句来查看我的浏览器类型,然后从那里开始。我处理这种情况的代码如下所示:
if($.browser.msie){
var data_to_parse = $( 'pre', data.result ).text();
}else{
var data_to_parse = data.result;
}
var result = jQuery.parseJSON(data_to_parse);
var filename = result[0].name;
我现在可以操纵我从IE和其他浏览器获得的响应!
答案 1 :(得分:0)
var result = jQuery.parseJSON(data.result);
有关如何调试的更多详细信息: How do I dump JavaScript vars in IE8?
另外值得一读,请使用firebug lite: jQuery logging in IE: how to get object?