我有一个在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>
感谢。
答案 0 :(得分:2)
您认为这可能是一个跨站点错误的评论让我觉得这可能是您的答案:Access denied to jQuery script on IE
要点是你不能使用jquery在IE中制作跨站点ajax请求,你必须使用XDomainRequest。
答案 1 :(得分:0)
我使用“GET”代替“POST”,它在IE9中为我工作