我正在尝试在IE中获得表单提交工作。我所拥有的在Chrome,FF,Opera和Safari中都能工作。我相信它在IE10中也可以工作,但我这里没有设备来再次测试(我以前在IE10中测试过它,它工作得很好。我对页面做了一些更改,但我非常确定这些更改不会影响这个表单)。
基本上,我有一个提交记录的表单,但它是用jquery.form控件提交的:
<form action="@Url.Content("/ActivitySubmission/SubmitWork")" class="activityForm" id="formId-@(item)" method="post">和处理提交的jQuery代码:
$(".activityForm").submit(function (e) {
e.preventDefault();
var parts = $(this).prop("id").split("-");
var activityTemplateId = parts[3];
var resultsDivId = "#activityResults" + activityTemplateId;
var msg = '<div style="height:40px; margin-right:20px; float:left;"><img src="/Content/Images/loadingSpinner.gif" /></div>' +
'Saving your work...<div style="clear:both;"></div>';
$(resultsDivId).html(msg).slideDown();
var action = $(this).prop("action");
$(this).ajaxSubmit({
url: "/ActivitySubmission/SubmitWork",
data: {activityTemplateId: activityTemplateId},
iframe: true,
target: resultsDivId,
dataType: 'json',
success: function (data, textStatus, jqXHR) {
var parts = data.split("|");
var status = parts[0];
var message = parts[1];
$(resultsDivId).html('<div class="activitySuccess">' + message.replace("\"", "") + '</div>');
$("#reloadReminder").fadeIn("1200");
return false;
},
error: function(jqXHR, textStatus, errorThrown){
$(resultsDivId).html('<div class="activityError">Sorry, unable to act on your save or submit command. Please let the monitor know.</div>');
alert(errorThrown);
return false;
}
});
return false;
});在IE中,表单将post并运行控制器(/ActivitySubmission/SubmitWork)中的代码,但当它返回页面时,它不会运行.ajaxSubmit({...});的“成功”方法,它只是给我一个“保存/打开/运行”对话框:

关于IE中为什么会发生这种情况,以及我如何改变这种情况,有什么想法吗?
发布于 2013-04-02 22:18:07
如果在ajax调用中意外出现"save/open/run“对话框,则意味着服务器没有在HTTP标头中提供正确的mime类型信息,因此浏览器将响应错误地识别为需要下载的文件。
您需要添加指定要发送的数据类型的HTTP标头。例如,在本例中,看起来您正在发送一个HTML代码片段,因此发送一个指定text/html的头文件。
希望这能有所帮助。
https://stackoverflow.com/questions/15765787
复制相似问题