我一直在试用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
答案 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");
}