解析Javascript对象

时间:2016-09-02 10:57:03

标签: jquery json ajax asp.net-mvc dropzone.js

我使用dropzone.js通过ajax上传文件,但我需要为不支持XMLHttpRequest的旧浏览器实现回退方法。

要使用jQuery Iframe Transport plugin

解决这个问题
 $.ajax({
        url: "/File/Create",
        type: 'POST',
        cache: false,
        data: { fallback: true },
        files: $("form :file"),
        iframe: true,
        processData: false
   }).complete(function (data) {
        console.log(data.message);

    });

由于jquery iframe传输无法访问服务器响应的HTTP头,因此使用jQuery提供的自动内容类型检测与使用常规XHR一样简单。

解决方法是发回一个HTML文档,该文档只包含一个<textarea>元素,该元素具有指定MIME类型的data-type属性,并将实际有效负载放在textarea中:

<textarea data-type="application/json">
   {"ok": true, "message": "Thanks so much"}
</textarea>

所以在我的asp mvc控制器中,我按如下方式返回响应:

if (fallback == "true")
{
    return Content("<textarea data-type=\"application/json\">{\"ok\": false, \"message\": \"Success.\"}</textarea>");

}

返回以下javascript对象:

Object { readyState=4, responseText="{"ok": false, "message": "Success"}", responseJSON Object {ok=false, message="Success"}

如何解析此响应以输出Json消息。以下给我未定义?

.complete(function (data) {
        console.log(data.message);
});

1 个答案:

答案 0 :(得分:0)

想出来。只需要做以下事情:

console.log(data.responseJSON.message);