在IE中发送Jquery Ajax请求

时间:2012-07-11 20:56:09

标签: internet-explorer jquery jquery-post

我有一个在FF,Chrome,Opera和Safari中使用的ajax请求。我在IE中进行了测试,它完成了两个请求中的第一个。它从php脚本获取IP,但是当它发布到我的java servlet时它不会发出请求;我用小提琴和wireshark进行了测试,请求没有被发送出去。我已经尝试将ajax缓存设置为false没有帮助。不知道它可能是什么。 php发出的唯一区别是IE不发送客户端Accept-Charset。这让我相信这个问题与第一个请求有关;但它正确地获取数据所以我有点难过的想法?我删除了特定地址,但其余代码或多或少相同 更改了我的代码,以便我没有嵌入式请求,我准备好文档,阻止IE冻结,但它仍然没有发送出去。此外,它现在返回Ajax请求的一般错误返回。更改代码更像下面

 <script>
$(function()
{
    function myfunction(event) 
    {  
        var email = $("#emailInput").val();
        if (email.indexOf('@') == -1 || email.indexOf('.') == -1)
        {
            alert("Please Enter a Valid Email");
        }
        else
        {   
            var eEmail = "email:" + email +"," + "ip:" + ip;
            Email = "="+encodeURIComponent(eEmail);

            $.support.cors = true;
            $.ajax(
                {
                url: 'myServletURI',
                type: 'POST',
                data: eEmail,
                cache: 'false',
                error: function(xhr,textStatus)
                {
                    alert(textStatus);
                },
                success: function(data)
                { 
                    //I have a JS lib I wrote to parse results
                    var result = makeDictionary(data);
                    if(result["command"] == "failed")
                    {
                        alert("Error");
                    }
                    else
                    {
                        window.location = "goToNextPage.html";
                    }                                                      
                }
            });
        }
    }
return false;
}); 
</script>

感谢。

2 个答案:

答案 0 :(得分:2)

您认为这可能是一个跨站点错误的评论让我觉得这可能是您的答案:Access denied to jQuery script on IE

要点是你不能使用jquery在IE中制作跨站点ajax请求,你必须使用XDomainRequest。

答案 1 :(得分:0)

我使用“GET”代替“POST”,它在IE9中为我工作