Javascript 如何为IE调试这个ajax脚本?

Javascript 如何为IE调试这个ajax脚本?,javascript,ajax,internet-explorer,Javascript,Ajax,Internet Explorer,我在一个页面中安装了一个AJAX脚本,在firefoex中运行良好,没有bug,但是IE6在状态栏上加载了一个丑陋的错误图标。修复/调试此问题的最佳方法是什么 以下是错误报告: 我已经检查了323行很多次,下面是函数: function checkAvailability(){ var card_select = document.getElementById('card_select').value; var price_select = document.getElemen

我在一个页面中安装了一个AJAX脚本,在firefoex中运行良好,没有bug,但是IE6在状态栏上加载了一个丑陋的错误图标。修复/调试此问题的最佳方法是什么

以下是错误报告:

我已经检查了323行很多次,下面是函数:

function checkAvailability(){

   var card_select  = document.getElementById('card_select').value;
   var price_select = document.getElementById('price_select').value;
   var num_of_cards = document.getElementById('num_of_cards').value;
   var url = 'checkAvailability.php?cardName=' + card_select + '&value=' + price_select + '&amount=' + num_of_cards;

   var xmlhttp;
            if (window.XMLHttpRequest)
            {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            else if (window.ActiveXObject)
            {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else
            {
                alert("Your browser does not support XMLHTTP!");
            }

            xmlhttp.onreadystatechange =    function()
                                            {
                                                if(xmlhttp.readyState == 4 && xmlhttp.responseText) /**** line 323 ****/
                                                {
                                                    document.getElementById('submit_button').className      = 'hidden';
                                                    document.getElementById('div_error_massage').className  = 'anounce_div';
                                                    document.getElementById('error_massage').innerHTML      = xmlhttp.responseText;
                                                    document.getElementById('num_of_cards').className       = 'red_inputs';
                                                }
                                                else if(isNaN(num_of_cards))
                                                {
                                                    document.getElementById('submit_button').className      = 'hidden';
                                                    document.getElementById('num_of_cards').className       = 'red_inputs';
                                                    document.getElementById('div_error_massage').className  = 'hidden';

                                                }
                                                else if(num_of_cards != "" && !xmlhttp.responseText) 
                                                {
                                                    document.getElementById('submit_button').className      = '';
                                                    document.getElementById('error_massage').innerHTML      = 'Total: $' + document.getElementById('price_select').value * document.getElementById('num_of_cards').value  + '.00';
                                                    document.getElementById('div_error_massage').className  = 'anounce_div';

                                                }
                                                else
                                                {
                                                    document.getElementById('submit_button').className      = 'hidden';
                                                    document.getElementById('num_of_cards').className       = 'red_inputs';
                                                }
                                            }




            xmlhttp.open("GET",url,true);
            xmlhttp.send(null);

}

在IE中,你可以试试旧的或旧的。当错误抛出时,进入调试器并检查IE中的
xmlhttp

,您可以尝试旧的或。当错误抛出时,输入调试器并检查
xmlhttp

除了outis的答案之外,如果您想控制使用调试器跳转的位置,请使用Javascript的
调试器
关键字,该关键字的作用类似于断点。当使用
调试器的行时时,在IE中您将得到一个提示(如果IE中启用了调试,请检查您的Internet选项),从该行开始启动调试器。在Firefox中,
调试器语句由Firebug拾取作为断点。

除了outis的答案之外,如果您想控制使用调试器跳转的位置,请使用Javascript的
调试器
关键字,该关键字的作用类似于断点。当使用
调试器的行时时,在IE中您将得到一个提示(如果IE中启用了调试,请检查您的Internet选项),从该行开始启动调试器。在Firefox中,
调试器语句被Firebug作为断点拾取。

您正在尝试读取!readyState不是4时的xmlhttp.responseText


尝试删除该行,看看IE是否运行。

您正在尝试阅读!readyState不是4时的xmlhttp.responseText


尝试删除该行,看看IE是否运行。

MS Office附带了一个很好的IE Javascript调试器


一个快速的谷歌展示了这一点:

微软Office附带了一个很棒的IE Javascript调试器

一个快速的google将此显示为一个howto:

除了检查readyState之外,您可能还需要检查(xmlhttp.status==200)您可能还需要检查(xmlhttp.status==200)除了检查readyState之外