微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery $ .post在Internet Explorer中不起作用

如何解决jQuery $ .post在Internet Explorer中不起作用

| 我有以下jQuery片段:
var AlertType =
{
    Save: function () {
        var model = $(\'#alert\').serialize();
        $.post(\'/account/alert/edit\',model);
    }
}
调用
AlertType.Save()
时,
$.post()
在IE中不起作用,但是在所有其他浏览器中(感到惊讶吗?),我尝试研究此问题,但这是一个相当广泛的类别或问题。我什至在
$.post()
中放置了一个回调函数,并试图在该回调中将
alert()
,但是它从未发出警报。 可能是什么原因造成的,解决办法是什么?     

解决方法

        穿上你的鞋子,我会将问题分解成最小的部分,然后从那里开始。 步骤1 您确定ѭ1正在被调用吗?发出警报:
var AlertType =
        {
            Save: function () {
                alert(\'Save called.\');
                var model = $(\'#alert\').serialize();
                $.post(\'/account/alert/edit\',model);

            }
        }
第2步 如果正在调用
Save()
,请尝试使用
null
而不是model来调用
$.post()
。在
Alert
控制器的
Edit
的动作方法代码中插入一个断点。您要确保正在调用控制器代码。 第三步 如果正在调用控制器代码,则
model
有问题。 (不知道从哪里拿走,对不起)。如果仍未调用控制器代码,请尝试直接调用
$.post()
,即不使用
AlertType.Save()
。所以代替:
AlertType.Save();
做实际的$ .post()。您想在这里消除它成为错误的javascript对象的机会。 也许以上这些是矫kill过正,但是您只需这样做一次,如果再次发生,您将学到一些东西:)根据经验,由于IE确实很愚蠢,IE可以使您不得不四处走动以诊断问题。有时候,其他浏览器根本不这样做。要爱IE浏览器。     ,        根据我的经验,IE比其他浏览器更积极地缓存。 尝试在查询中添加一个随机数:
$.post(\'/account/alert/edit?r=\' + (Math.random() * 999),model);
    ,        这可能是浏览器上的安全策略。 IE是否会阻止XmlHttpRequest的使用,可能会用于少数几个受信任的域?     ,        试试
$.ajax
对象,它在IE 8中可以正常工作:
var ajaxobject = $.ajax(
{
    type:\'POST\',url:\'/account/alert/edit\',cache:false,async:true,global:false,dataType:\"html\",data:\"model=\" + $(\'#alert\').serialize(),timeout:10000,success:function(recept)
    {
        alert(\'sucess !\\nReceived data :\\n\' + recept);
    },error:function()
    {
        alert(\'failed.\');
    }
});
if(ajaxobject == undefined)
    alert(\'Ajax object creation failed\');
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。