![](/img/trans.png)
[英]jquery.form & jquery.validate: No POST data submitted in IE
[英]jQuery.form submitting issues with IE (7-9, possibly 10)
我正在尝试在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中,该表单将返回并返回到页面,并在控制器(/ ActivitySubmission / SubmitWork)BUT中运行该代码,但它不会运行.ajaxSubmit({...});
它只是给我一个“保存/打开/运行”对话框:
关于为什么在IE中发生这种情况以及如何更改这种情况有任何想法吗?
如果您在ajax调用中意外获取“保存/打开/运行”对话框,则意味着服务器未在HTTP标头中提供正确的mime类型信息,因此浏览器将响应错误地标识为需要下载的文件。
您需要添加一个HTTP标头,该标头指定要发送的数据类型。 例如,在这种情况下,您似乎正在发送HTML代码段,因此发送一个指定text/html
的标头。
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.