Просто наткнулся на что-то странное. У меня есть следующий код:
var SubmitHandler = function( target ){
// ..... code ...
// target is an html form
target = $( target );
// .... code ....
//send get request
$.get( target.attr( "action" ), target.serialize()+"&AjaxRequest=true", function( data ){
//add response html to page
ReplaceElement.html( data );
});
// .... code ....
Хорошо, поэтому я не вижу ничего явно неправильного в этом коде. По сути, я просто отправляю запрос jQuery get
на сервер, используя атрибут формы "action" в качестве URL, сериализирую форму с помощью функции jQuery serialize
и добавляю что-то к сгенерированной строке запроса. Строка запроса, отправленная на сервер, выглядит следующим образом:
?SortBy=e.Name&SortOrder=ASC&AjaxContent=true
Это прекрасно работает во всех браузерах, кроме IE. В IE строка запроса выглядит так:
?&AjaxContent=true
Это похоже на то, что IE даже не запускает функцию target.serialize()
. Тем не менее, если я использую alert(target.serialize())
, я вижу ожидаемые результаты.
Странно, но мне пришлось добавить следующую переменную, чтобы заставить это работать в IE:
var SubmitHandler = function( target ){
// ..... code ...
// target is an html form
target = $( target );
// .... code ....
var targetSerialized = target.serialize();
//send get request
$.get( target.attr( "action" ), targetSerialized+"&AjaxContent=true", function( data ){
//add response html to page
ReplaceElement.html( data );
});
// .... code ....
Кто-нибудь знает, почему это произошло?
(на тот случай, если вам интересно, я попробовал это с более подробной $.ajax
функцией и получил те же результаты)