解析 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);
我正在使用 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);