IE AJAX跨浏览器问题

时间:2011-10-11 17:00:37

标签: ajax internet-explorer jquery

我有以下AJAX功能:

function ajaxDesignerBrandInfo()
{
    var D = wrapFormValues('#designer-brand-form');
    var recursiveEncoded = $.param(D);  
    /*
    $.post("/api/designer_brand/", { data : recursiveEncoded }, function(data) 
    {
        var results = $.parseJSON(data);
        window.location = "/register/designer-product/"; 
    });*/

    $.ajax( { type: "POST", 
              url: "/api/designer_brand/", 
              data : { data : recursiveEncoded },
              success: function(data) { 
                console.log(data);
                setTimeout(function() {
                window.location = "/register/designer-product/";
            },0);
              },
              error: function (xhr, ajaxOptions, thrownError ){
                                alert(xhr.status);
                                alert(thrownError); }
        });

    return false;   

}

以及相应的表格

<form id="designer-brand-form" name="form" method="post" action="" onSubmit="ajaxDesignerBrandInfo(); return false;"> 
....
</form>

提交在Chrome,Safari和FireFox上非常有效,让我感动

/注册/设计者产品/

正确,但在IE9中,提交似乎

  1. 永远不要进入服务器

  2. 清除表单并重定向回我当前所在的页面(此表单存在)。

  3. 我可以通过FireFox确认没有导致此失败的javascript错误。有时它确实有效,但我似乎总是以同样的方式重现这个错误

    有人请解释WTF正在进行中吗?

    由于

1 个答案:

答案 0 :(得分:2)

我相信你的问题是IE默默地抛出了一个Javascript错误。仅仅因为Firefox没有抛出JS错误,并不意味着IE不会。检查IE中的JS错误(请参阅this linkthis one)。找到错误,你就会找到解决方案。

此外,请尝试Fiddler,它是一个独立的Windows工具,充当代理服务器,并会告诉您AJAX流量的确切含义。

您的具体问题可能是console.log来电。这是一个Firebug的东西(Chrome支持)。我认为IE不会,除非你采取措施添加它。请参阅:What happened to console.log in IE8?

相关问题