【发布时间】:2014-04-04 18:22:53
【问题描述】:
此代码适用于 XP 机器上除 IE8 之外的所有其他浏览器。不能为我的生活弄明白。在 IE8 中它总是会显示错误函数。我尝试将dataType更改为jsonp、text、html,不管它总是弹出错误函数。就像我说的,Chrome、Safari、Firefox 和所有其他 IE 都可以工作,而 IE8 则不行。
<script type="text/javascript">
$("#zip").submit(function (e) {
e.preventDefault();
if ($(this).parsley('isValid') === true) {
var el = $("#zipcode");
if ((el.val().length == 5) && (is_int(el.val()))) {
$.ajax({
url: "http://zip.elevenbasetwo.com/v2/US/" + el.val(),
cache: false,
dataType: "json",
type: "GET",
success: function (result, success) {
console.log(result.state);
$('.rates-zip').fadeOut(function () {
switch (result.state) {
case "California":
$('#western').fadeIn();
break;
case "Illinois":
case "Virginia":
$('#midwest').fadeIn();
break;
case "New York":
case "New Jersey":
$('#eastern').fadeIn();
break;
case "Washington":
$('#northwest').fadeIn();
break;
default:
$('#default').fadeIn();
}
})
},
error: function (result, success) {
alert("Error IE8");
}
});
}
};
});
function is_int(value) {
if ((parseFloat(value) == parseInt(value)) && !isNaN(value)) {
return true;
} else {
return false;
}
}
</script>
希望有人可以解决。
【问题讨论】:
-
检查操作错误。它说什么?
-
zip.elevenbasetwo.com 是您的域吗?您使用的是什么版本的 jQuery?我认为 IE8 支持 CORS 的方式与其他更现代的浏览器不同。
-
您可能会遇到 IE8 无法与 e.preventDefault() 配合使用的情况之一,请参阅:stackoverflow.com/questions/21033728/…
-
@CameronTinker 你可能是对的。 caniuse.com/cors。本文似乎对此进行了更深入的研究,并提供了一些解决方法:blogs.msdn.com/b/ieinternals/archive/2010/05/13/…
-
你需要一个jQuery插件来将CORS添加到IE8。
标签: javascript jquery ajax internet-explorer-8