解析 Javascript Object

Parse Javascript Object

我正在使用 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 headers,因此使用 [=41] 提供的自动内容类型检测并不那么简单=] 与常规 XHR 一样。

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

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

所以在我的 asp mvc 控制器中,我 return 的响应如下:

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

}

return以下javascript object:

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

如何解析此响应以输出 Json 消息。下面给我 undefined?

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

想通了。只需要执行以下操作:

console.log(data.responseJSON.message);