1

所有,我有以下代码:

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 收到以下错误:

消息:'upload_type' 为空或不是对象

当我在 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 的结果为空的帮助,即使我返回的字符串中有数据!

谢谢!

4

4 回答 4

2

我终于找到了解决方案,这是一个问题,因为 IE 不支持 XHR 上传。您可以通过查看此帖子找到对此的详细说明:

jquery 文件上传 - IE 完成回调 data.result 问题

然而,这并没有完全解决我的需求,因为该代码仅适用于 IE,而我需要跨浏览器工作。我稍微更新了我的代码,如果您在此处查看接受的答案:

jquery 文件上传 - IE 回调导致对象 Object

您将了解如何为 XHR 类型的上传处理来自 IE 的 JSON 响应!

于 2012-07-12T16:37:55.127 回答
1

data.result已经是一个对象。

你得到了因为当jQuery.parseJSON()的参数不是类型时nulljQuery 返回nullstring

于 2012-07-11T22:47:25.263 回答
0

也许在 IE 中试试这个:

alert(data.result);

那应该给你 JSON 的字符串值。

于 2012-07-11T22:41:10.217 回答
0

data.result已经解析,不需要$.parseJSON. 删除这一行:

var result = jQuery.parseJSON(data.result);

此外,您的 JSON 对象是一个(对象)数组。尝试从数组中的第一个对象获取属性。

var uploadType = data.result[0].upload_type;
于 2012-07-11T22:46:58.383 回答