Jquery 请求标头在IE中不可用

Jquery 请求标头在IE中不可用,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我使用的插件可以通过Ajax上传图像。这个插件的js源代码是 如果看到从1200开始的线,您会注意到: // build query string params = params || {}; params['qqfile'] = name; var queryString = qq.obj2url(params, this._options.action); xhr.open("POST", queryString, true); xhr.setReq

我使用的插件可以通过Ajax上传图像。这个插件的js源代码是

如果看到从1200开始的线,您会注意到:

// build query string
    params = params || {};
    params['qqfile'] = name;
    var queryString = qq.obj2url(params, this._options.action);

    xhr.open("POST", queryString, true);
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
    xhr.setRequestHeader("Content-Type", "application/octet-stream");
    xhr.send(file);
因此,上传的文件名基本上可以作为
qqfile
参数或作为头变量:
X-File-Name
使用。使用以下ASP.NET MVC代码,这两种方法在FF/Chrome中都能完美工作:

public JsonResult AjaxUpload(String qqfile)
    {

        String fileName = System.Web.HttpContext.Current.Request.Headers["x-file-name"];
        //rest of the code
    }
但是在IE中,这些都不起作用……头变量为null(在调试中,我清楚地看到这个参数没有被发送),并且
1qqfile
总是
“System.Web.HttpPostedFileWrapper”

有人知道IE如何解决这个问题吗


Ps:这个插件的演示是。

我终于可以像这样做了:

 public JsonResult AjaxUpload(HttpPostedFileWrapper qqfile)
    {
        //IE
        if (qqfile != null)
        {
            fileName = qqfile.FileName;
        }
        else
        {
            fileName = System.Web.HttpContext.Current.Request.Headers["x-file-name"];
        }
  //rest of the code
  }

似乎在IE
HttpPostedFileWrapper
中包含文件名和其他属性(而在其他浏览器中这是
null
),很奇怪我不得不为IE做一个特例。

我终于能够这样做了:

 public JsonResult AjaxUpload(HttpPostedFileWrapper qqfile)
    {
        //IE
        if (qqfile != null)
        {
            fileName = qqfile.FileName;
        }
        else
        {
            fileName = System.Web.HttpContext.Current.Request.Headers["x-file-name"];
        }
  //rest of the code
  }
似乎在IE
HttpPostedFileWrapper
中包含文件名和其他属性(而在其他浏览器中这是
null
),非常奇怪,我不得不为IE做一个特例。

做得好,先生:)认为这将是一个令人头痛的问题。你的解决方案对我有效。唯一的问题是qqFile.FileName为我返回了一个完整的路径,所以我不得不分割出实际的文件名。做得好,先生:)我认为这会是一个头痛的问题。你的解决方案对我有效。唯一的问题是qqFile.FileName为我返回了一个完整的路径,所以我不得不拆分出实际的文件名。