Глюк в IE, не работает Ajax

udodirc

Новичок
Глюк в IE, не работает Ajax

Здравствуйте, столкнулся с проблемой в IE, внизу исходник AJAX писаный на простом JavaScript:

JavaScript:

1. function send_menu_data( menu_name, title, desc, action )
2. {
3.
4. var XMLHttpRequestObject = false;
5.
6. if ( window.XMLHttpRequest )
7. XMLHttpRequestObject = new XMLHttpRequest();
8. else if (window.ActiveXObject){ // if IE
9. try {
10. XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP")
11. }
12. catch (e){
13. try{
14. XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP")
15. }
16. catch (e){}
17. }
18. }
19. else
20. return false
21.
22. if( XMLHttpRequestObject )
23. {
24. var Menu_Name = menu_name;
25. var Title = title;
26. var Desc = desc;
27. var url = 'menu.php?action=' + action + '&Menu_Name=' + Menu_Name + '&Title=' + Title + '&Desc=' + Desc;
28. XMLHttpRequestObject.open( 'GET', url, true );
29. XMLHttpRequestObject.onreadystatechange = function()
30. {
31. if ( XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200 )
32. {
33. document.getElementById('content').innerHTML=XMLHttpRequestObject.responseText
34. }
35. }
36.
37. XMLHttpRequestObject.send( null );
38. }
39.
40. }



Проблема в том, что в FF и Opera, все происходит нормально, а вот в IE отсылает данные и вбивает их в базу, но не отображает полученные данные, то есть если getElementById('content') является слоем, отображает если таблицей то нет.
Я так понял проблема в InnerHtml.

Переписал код на JQuery исходник снизу:

JavaScript:

1. jQuery(document).ready(function(){
2. // Cancel form submition, return false
3. jQuery("#SendData").submit(function(){
4. return false;
5. });
6. // Manage submit button click event
7. jQuery("#send_data").click(function(){
8. // Call some function to handle Ajax request
9. SendData();
10. });
11. function SendData(){
12. var action = jQuery("#send_data").attr("action");
13. var Title = jQuery("#title").attr("value");
14. var Text = jQuery("#text").attr("value");
15. var Menu_ID = jQuery("#menu_id").attr("value");
16. var Content_ID = jQuery("#content_id").attr("value");
17. jQuery.ajax({
18. type: "POST",
19. url: "process.php",
20. dataType: "html",
21. data: "action=" + action + "&Menu_ID=" + Menu_ID + "&Content_ID=" + Content_ID + "&Title=" + Title + "&Text=" + Text,
22. success: function(response){
23. // if sucessful; response will contain some stuff echo-ed from .php
24. // quick tect: alert("Here is your response: " + response);
25. // Append this response to some <div> => let's append it to div with id "content"
26. jQuery("#content").append(response);
27. },
28. error: function(){
29. alert("Error occured during Ajax request...");
30. }
31. });
32.
33. } // END OF SendData()
34. });



В FF и Opera работает а вот в IE 6 нет выдает ошибку Error occured during Ajax request..., в чем причина, я так понял IE 6 ответ сервера не может выдать,
обрабатывет о показать результат не может. В том примере выше где просто javascript проблема была в InnerHtml, IE его обрабатывет с глюком в таблице, Microsoft признали официально этот глюк. В чем ошибка, кто знает?
 
Сверху