2

我一直在尝试 jquery 表单插件,它工作得很好。哦,除了IE8。它始终是 ie8。

无论如何,在成功响应回调上,ie8 提示我下载响应而不是实际调用成功函数。

这是我的 javascript 代码的样子

 $("#form1").ajaxForm({
                url: "http://localhost:4887/api/file/POST",
                type: "POST",                 
                success: function (data)
                {
                    //response stuff here                   
                }
            });

我已经尝试为 ajax 表单指定数据类型,但是我很不幸,它没有用

我从服务器返回的唯一东西只是一个字符串。IE8 再次提示我下载这个字符串,而不是仅仅调用成功函数。经过一番研究,我知道我可能需要修改 http 标头?任何人都可以对此有所了解吗?或者给出另一种解决方法?

更新这里是 C# 控制器的简要介绍

public class fileController : ApiController
{     
    public JsonResult POST()
    {
        HttpPostedFile file = null; 


       string encodedString = //do stuff here to get the base64 string

        ModelName obj = new ModelName();

        obj.characters = encodedString;
        JsonResult result = new JsonResult();
        result.Data = obj;
        result.ContentType = "text/html";

        return result;

    }

请求标头...

接受 application/x-ms-application、image/jpeg、application/xaml+xml、image/gif、image/pjpeg、application/x-ms-xbap、application/vnd.ms-excel、application/vnd.ms-powerpoint , 应用程序/msword, /

Accept-Language en-US

用户代理 Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C;.NET4.0E;InfoPath.3;.NET CLR 1.1.4322)

内容类型多部分/表单数据;边界=---------------7dd3e622907b6

接受编码 gzip,放气

代理连接保持活动

内容长度 300

响应头 HTTP/1.1 200 OK Cache-Control no-cache

杂注无缓存

内容类型应用程序/json;字符集=utf-8

过期 -1

服务器 Microsoft-IIS/8.0

X-AspNet-Version 4.0.30319 X-Powered-By ASP.NET

4

1 回答 1

1

尝试这个:

[HttpPost]
public JsonResult POST()
{
    HttpPostedFile file = null; ;
    string encodedString = //get the file contents, and get the base64 encoded string        
    ModelName obj= new ModelName();
    obj.characters = encodedString;
    return   Json(obj, "text/html");

}

更新:

或更改内容类型
Response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");

例子:

public JsonResult POST()
    {
        HttpPostedFile file = null; ;
        string encodedString = //get the file contents, and get the base64 encoded string        
        ModelName obj= new ModelName();
        obj.characters = encodedString;
        Response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
        return   Json(obj, "text/html");

    }
于 2013-10-06T19:58:55.177 回答