Когда вы делаете это:
var resultHTML = jQuery.ajax({
type: 'GET',
url: 'AccountBar/Register'
}).responseText;
$('#Bar').html(resultHTML);
IE9 делает здесь небольшую хитрость, блокируя до завершения запроса (или кэшируя его, в зависимости от того, в какой сборке вы находитесь) при доступе к .responseText
.Важно помнить, что это асинхронный вызов , что означает, что он отключается и делает запрос ... результат будет доступен позже.
В этом случае самый простой подход - это метод .load()
только для этого:
$('#Bar').load('AccountBar/Register');
Это примерно означает:
$.ajax({
type: 'GET',
url: 'AccountBar/Register'
success: function(result) {
$('#Bar').html(result);
}
});
Альтернативный подход, который вы пытаетесь сделать, состоит в том, чтобы сделать запрос * синхронным * (пожалуйста, , не делайте этого ), установив async: false
на $.ajax({})
вызове , вот так:
var resultHTML = jQuery.ajax({
type: 'GET',
url: 'AccountBar/Register',
async: false
}).responseText;
Это будет работать ... но также будет блокировать браузер во время его работы, вместо того, чтобы не прерывать работу и не обновлять #Bar
после завершения ... это намного хуже для пользователя, и лучше не делать этого.