I just ended my 2 days 'dance' with IE Ajax and POST refer to this post if you need more info. http://groups.google.com/group/jquery-en/browse_thread/thread/a2f65e23c7f60e06?hl=en#
Might be not your case but with checking. George. On Nov 17, 3:27 pm, Reepsy <[EMAIL PROTECTED]> wrote: > I am sorry I cannot link to example pages due to security > restrictions. So will do my best to describe the problem with comments > in my JS. > > Firstly, I am using jQuery with jqModal to load a page partial into a > modal window. That page partial contains a form. When it is submitted, > I am capturing that info and submitting it via $.ajax() using 'POST'. > The backend script does its business, and returns some json, which is > written to the modal. > > This all works perfectly in FF, Safari and IE7. Just not IE6. It > doesn't return any json at all. Further, when I look at my logs, there > is not even a POST request for the page in question, when using IE6. > > Here's the jist of it with /* COMMENTS > > /*LOAD A PAGE PARTIAL INTO THE MODAL > $('#modal-content').load($l).ajaxStop(function() { > /* IF THERE IS A FORM IN THE MODAL > if ($(this).children('form').length > 0 ) { > /* ATTACH THIS TO SUBMIT EVENT > $(this).children('form').submit(function() { > /* SERIALIZE THE FORM > var $s = $(this).serialize(); > /* GET NAME/VALUE PAIR OF SUBMIT BUTTON (THEY AREN"T ALWAYS TEH > SAME FROM PAGE TO PAGE) > var $submit = $('input[type="submit"]').attr('name'); > /* ADD IT NAME/VALUES (jQuery serialze() DOESN'T ASSUME THIS > PAIR) > $s += '&' + $submit + '=' + $submit; > $.ajax({ > /* CACHING OFF FOR IE > cache: false, > /* MY DATA > data: $s, > /* I WANT JSON BACK > dataType: 'json', > /* UPDATE MODAL ON SUCCESS > success: function(data) { > if(data.flash) { > $('div.flash, #spinner').remove(); > if(data.flash.classname != 'error') { $('#modal- > content').html(''); } > $('#modal-content').prepend('<div class="flash"></div>'); > $('div.flash').addClass(data.flash.classname).html > (data.flash.message); > } > if(data.message) { $('#modal-content').append > (data.message); } > if(data.refresh) { window.location.reload(); } > }, > /* MAKE IT A POST > type: 'POST', > /* THE BACKEND SCRIPT > url: $(this).attr('action') > }); > /* HIJACK THE FORM SUBMIT > return false; > }); > } > > }); > > So I have isolated some scoping issues where IE6 doesn't know what $s > and $(this).attr('action') are when we are inside the $.ajax() bit. So > I hard coded correct values for them and tried again. Still nothing > returned, nor any evidence of a POST made to the page in question. > Finally, I changed my dataType to this: > > dataType: ($.browser.msie) ? 'text' : 'json' > > Then, I get can at least get a reponse back from the backend, and I > see that a POST request was made for the backend script. But that is > not what I need. I need to get JSON back. The backend script > absolutely detects JSON requests and returns them in kind for all > other browser combos. Any idea why not for IE6? > > Also, what is wrong with my scope that $.ajax() doesn't know what $s > and $(this).attr('action') are in IE6?