我使用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);
});
答案 0 :(得分:0)
想出来。只需要做以下事情:
console.log(data.responseJSON.message);