全部, 我有以下代码:
onDone: function (e, data) {
var result = jQuery.parseJSON(data.result);
var uploadType = result.upload_type;
var filename = result.name;
var insert_id = result.insert_id;
}
当我运行此操作时,我从IE中收到以下错误:
Message: 'upload_type' is null or not an 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"
}]
我试图了解为什么我在IE8中收到错误消息,但我看不到正在解析的内容。当我做了这样的警报时:
var result = jQuery.parseJSON(data.result);
alert(result)
我变得无效,但不明白为什么。
非常感谢任何帮助,如何阅读它或者为什么我解析的JSON的结果为空,即使我返回的字符串中有数据!
谢谢!
答案 0 :(得分:2)
我终于找到了解决方案,这是一个问题,因为IE不支持XHR上传。您可以通过查看以下帖子找到详细解释:
jquery file upload - IE done callback data.result issue
但这并没有完全解决我的需求,因为该代码仅适用于IE,我需要跨浏览器工作。我稍微更新了我的代码,如果你在这里查看接受的答案:
jquery file upload - IE callback results in object Object
您将了解如何处理来自IE的JSON响应以进行XHR类型的上传!
答案 1 :(得分:1)
答案 2 :(得分:0)
也许在IE中试试这个:
alert(data.result);
那应该给你JSON的字符串值。
答案 3 :(得分:0)
data.result
已经解析,不需要$.parseJSON
。删除这一行:
var result = jQuery.parseJSON(data.result);
此外,您的JSON对象是一个(对象)数组。尝试从数组中的第一个对象获取属性。
var uploadType = data.result[0].upload_type;