IE8提示下载json响应

时间:2013-10-06 19:49:33

标签: c# jquery json internet-explorer-8 jquery-forms-plugin

我一直在试用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标头?谁能对此有所了解?或者给出另一种解决方法?

UPDATE 以下是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,application / msword, /

Accept-Language en-US

User-Agent 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)

Content-Type multipart / form-data;边界= --------------------------- 7dd3e622907b6

接受编码gzip,deflate

代理连接保持活跃

Content-Length 300

响应标头     HTTP / 1.1 200好的 缓存控制无缓存

Pragma no-cache

Content-Type application / json;字符集= UTF-8

过期-1

服务器Microsoft-IIS / 8.0

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

1 个答案:

答案 0 :(得分: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");

    }