解析IE9中的JSON响应

解析IE9中的JSON响应,json,asp.net-mvc-3,asp.net-mvc-4,Json,Asp.net Mvc 3,Asp.net Mvc 4,在我的MVC4网络应用程序中,我使用FineUploader上传文件 上传文件时,我会从控制器发送json响应,如下所示: return this.Json(packageUploadResult, "text/plain", System.Text.Encoding.UTF8); 我不得不将“application/json”修改为“text/plain”,因为我在IE中获得了“另存为”“打开”选项。仅在IE中。它在所有其他浏览器中都可以正常工作 视图: 如何解析Json响应以使其在IE中工

在我的MVC4网络应用程序中,我使用FineUploader上传文件

上传文件时,我会从控制器发送json响应,如下所示:

return this.Json(packageUploadResult, "text/plain", System.Text.Encoding.UTF8);
我不得不将“application/json”修改为“text/plain”,因为我在IE中获得了“另存为”“打开”选项。仅在IE中。它在所有其他浏览器中都可以正常工作

视图:

如何解析Json响应以使其在IE中工作:

样本响应:

{"PackageErrorType":0,"PackageId":"AGI-MM-CFG-NUB-2.0.1.2.2","SignatureMatch":false,"IsSignature":false,"success":true}

您可以使用
$方法解析服务器返回的文本/纯文本。parseJSON
方法:

var json = $.parseJSON(textReturnedByServer);
if (json.success) {
    if (json.IsSignature) {
        alert("IN");
    }
}

当然,您应该只对不支持HTML5文件API的传统浏览器(如Internet Explorer)执行此操作。

我也可以查看脚本吗?它应该与您的响应一起工作……请参阅AnswerResponse中添加的代码当我解析它时,json变量中的值为null。这就是我在IE控制台中看到的:[FineUploader]将iframe的innerHTML转换为JSON[FineUploader]innerHTML={“PackageErrorType”:0,“PackageId”:“AGI-MM-GM-RTB-2.0.3.1.4”,“SignatureMatch”:false,“IsSignature”:false,“success”:true}可能是因为标签的缘故吗??如果是,我如何解析它?是的,这是因为pre标记。你可以把它过滤掉。
var json = $.parseJSON(textReturnedByServer);
if (json.success) {
    if (json.IsSignature) {
        alert("IN");
    }
}