Вы столкнулись с проблемой "висячей запятой" (запятой после закрывающего }
вашего параметра success
).IE не любит висячие запятые в объектных литералах, он обрабатывает их как синтаксические ошибки, и ваш скрипт умирает.(Это не ошибка IE, это разумная интерпретация более ранней спецификации; однако, новейшая спецификация, в частности, допускает запятую, и это исправлено в IE8.) Не по теме: IE имеет похожую, но другую, проблема с висячими запятыми в литералах массива (который все еще в IE8).
Подробнее об обоих isuses эта статья , но в основном:
$.ajax({
type: 'POST',
url: URL +'/foo/',
data: {'pass': pass},
dataType: "json",
jsonp:'jsonp_callback',
success: function(data) {
if (data["success"] === "false") {
$("#password").val("");
$('.error-message').removeClass('hide') // <== Strongly recommend ; here
$('.error-message').addClass('show') // <== Another ; here
}
else {
var tempUrl="http://10.0.1.101:9000/bar/" // <== Another ; here
location.href=tempUrl;
}
}, // <== This comma is the problem
});
return false // <== Another ; here
Смотрите записку в нижней части.Уберите запятую и все будет в порядке.Вещи улучшаются (как описано в связанной статье выше), но для максимальной совместимости в дикой природе, вы должны наблюдать это некоторое время дольше.
(Другие заметки не по теме, но, опять же, сильнорекомендуем также исправить их, никогда не полагаться на вставку точек с запятой.)