我正在尝试使用jquery.Ajax将数据发送到一个返回JsonResult的ASP.NET MVC2操作方法。一切都很好,除了当响应返回到浏览器时,它被视为文件下载,而不是传递到成功处理程序中。下面是我的代码:
Javascript:
<script type="text/javascript">
$(document).ready(function () {
$("form[action$='CreateEnvelope']").submit(function () {
$.ajax({
url: $(this).attr("action"),
type: "POST",
data: $(this).serialize(),
dataType: "json",
success: function (envelopeData) {
alert("test");
}
});
});
return false;
});
</script>控制器上的操作方法:
public JsonResult CreateEnvelope(string envelopeTitle, string envelopeDescription)
{
//create an envelope object and return
return Json(envelope);
}如果我打开下载的文件,json就是我要找的,mime类型显示为application/json。为了让jquery.ajax调用接收返回的json,我错过了什么?
发布于 2010-04-03 23:42:46
提交事件的处理程序中缺少"return false“。如果你不返回false,那么JQuery仍然会像往常一样传递提交。
<script type="text/javascript">
$(document).ready(function () {
$("form[action$='CreateEnvelope']").submit(function () {
$.ajax({
url: $(this).attr("action"),
type: "POST",
data: $(this).serialize(),
dataType: "json",
success: function (envelopeData) {
alert("test");
}
});
// IMPORTANT: return false to make sure the normal post doesn't happen!
return false;
});
return false;
});
</script>你就快到了!
发布于 2010-04-03 23:29:48
我刚刚开始使用与此类似的ajax,第一印象是,查看您的代码会发现您不需要在表单上调用submit?您只需要执行ajax调用。我可能错了,但可能是ajax正在返回数据,而页面正在进行刷新,其中页面数据被json数据替换?
https://stackoverflow.com/questions/2571650
复制相似问题