2015-09-09 80 views
0

我有下面的Ajax请求发布数据

var data = { ID: "data" }; 
$.ajax({ 
    type: "POST", 
    cache: false, 
    url: url, 
    data:data, 
    processData: false, 
    contentType: false, 
    success: function (result) {}, 
    error: function (response) {} 
}); 

,我有这样的MVC控制器

[HttpPost] 
public ActionResult Test(string ID) 
{   
    return Json(new { isSuccess = true }, JsonRequestBehavior.AllowGet); 
} 

的问题是,在控制器中的ID是走出空。如果我使用formdata,那么它的作品。我无法使用formdata,因为它不适用于IE9。我有一些与IFrames合作的东西,但它太复杂,有点破解。

var fd = new FormData(); 
fd.append("ID", "data"); 

有人可以告诉我如何使它工作。还有,我们如何才能在不使用formdata的情况下将文件传输到服务器。

+0

您的控制器不能读取请求对象并取出数据吗? – lerxstrulz

+0

请求对象内没有任何内容。 – user1221989

+1

你有手动将你的contentType设置为false的原因吗?将processData设置为false也可能是您的问题。 – JDupont

回答

0

尝试使用

$.post(url, data) 
    .done(successClbck) 
    .fail(errorClbck) 

,而不是$.ajax。它适用于所有数据对象,但不适用于文件