在formData对象中传入时,IE无法识别JSON字符串

时间:2017-10-17 00:31:11

标签: javascript c# json internet-explorer httppostedfilebase

我想要做的是通过AJAX上传文件,该文件以JSON编码的字符串作为其文件名。我编写的代码在Chrome中运行良好,但在IE中则不然。

这是我到目前为止的代码:

var file = {
            name: "example.jpg",
            guid: "example123",
            index: "0"
        }
var file_obj_string = JSON.stringify(file);
var formData = new FormData();

//curr_ob[0].files[0] is my file upload control
formData.append("FileUpload", curr_ob[0].files[0], file_obj_string);

 $.ajax({
            type: "POST",
            url: '/AddFile',
            data: formData,
            dataType: 'json',
            contentType: false,
            processData: false,
            success: function (response) {
              //do something
            },

        });

然后在服务器端:

  [HttpPost]
    public JsonResult AddFile()
    {
        for (int i = 0; i < Request.Files.Count; i++)
        {
            HttpPostedFileBase file = Request.Files[i];
            //do something with file
            //...
        }
    }

在服务器端,与Chrome一起运行时,上传的FileName正确显示为:

“{%22name%22:%22example.jpg%22%22guid%22:%22example123%22%22index%22:0}

但如果我在IE中运行它,则fileName属性为此 “{”

所以我的问题是,为什么开始时会有所不同,我该怎么做才能解决它?

谢谢

0 个答案:

没有答案