首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery.form提交IE问题(7-9,可能10)

jQuery.form提交IE问题(7-9,可能10)
EN

Stack Overflow用户
提问于 2013-04-02 21:46:20
回答 1查看 162关注 0票数 1

我正在尝试在IE中获得表单提交工作。我所拥有的在Chrome,FF,Opera和Safari中都能工作。我相信它在IE10中也可以工作,但我这里没有设备来再次测试(我以前在IE10中测试过它,它工作得很好。我对页面做了一些更改,但我非常确定这些更改不会影响这个表单)。

基本上,我有一个提交记录的表单,但它是用jquery.form控件提交的:

代码语言:javascript
复制
<form action="@Url.Content("/ActivitySubmission/SubmitWork")" class="activityForm" id="formId-@(item)" method="post">

和处理提交的jQuery代码:

代码语言:javascript
复制
$(".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中为什么会发生这种情况,以及我如何改变这种情况,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-02 22:18:07

如果在ajax调用中意外出现"save/open/run“对话框,则意味着服务器没有在HTTP标头中提供正确的mime类型信息,因此浏览器将响应错误地识别为需要下载的文件。

您需要添加指定要发送的数据类型的HTTP标头。例如,在本例中,看起来您正在发送一个HTML代码片段,因此发送一个指定text/html的头文件。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15765787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档