Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ajax任务不一致_Java_Jquery_Ajax_Jsp - Fatal编程技术网

Java Ajax任务不一致

Java Ajax任务不一致,java,jquery,ajax,jsp,Java,Jquery,Ajax,Jsp,意图:我正在尝试写一些东西,用户将单击页面上的按钮,并查看SQL表在后台更新时发生的情况,因为该过程需要很长时间 问题:由于某种原因,当我第一次单击按钮时,它会不断向我的java servlet发送空值。如果我重新加载页面并再次单击按钮,那么它将正常工作。但我不能期望我的用户每次访问页面时都重新加载页面 非常感谢您的帮助 Jquery v1.11.1(因为这里的一些机器仍然运行IE8) Java服务器(Glassfish 3.1) IDE日食开普勒 page.jsp <script typ

意图:我正在尝试写一些东西,用户将单击页面上的按钮,并查看SQL表在后台更新时发生的情况,因为该过程需要很长时间

问题:由于某种原因,当我第一次单击按钮时,它会不断向我的java servlet发送空值。如果我重新加载页面并再次单击按钮,那么它将正常工作。但我不能期望我的用户每次访问页面时都重新加载页面

非常感谢您的帮助

Jquery v1.11.1(因为这里的一些机器仍然运行IE8) Java服务器(Glassfish 3.1) IDE日食开普勒

page.jsp

<script type="text/javascript" src="JavaScript/jquery.js"></script>
<script>
    $.ajaxSetup({
        cache : false
    });

    function updateAttdData(processNum, tablePrefix, procName) {
        $.ajax({
            url : 'TestProcRefresh',
            type : 'POST',
            async: true,
            data : 'tableprefix=' + tablePrefix + '&procname=' + procName,
            timeout : 600000,
            beforeSend : function() {
                $('#Process' + processNum + '_Image').attr("style","visibility:visible");
            },
            success : function() {
                $('#Process' + processNum + '_Div').append("...Successful").css('color', 'green');
                $('#Process' + processNum + '_Image').attr("src","images/greencheck.png");
            },
            error : function() {
                $('#Process' + processNum + '_Div').append("...ERROR").css('color', 'red');
                $('#Process' + processNum + '_Image').attr("src","images/redx.png");
            }
        });
    }

    $(document).ready(function() {
        $('#ProcTest').click(function() {
            //Disable Button for action
            $('#ProcTest').attr("disabled", true);

            //Begin Data Refresh
            updateAttdData(1, 'MTH_', 'UPDATE_1');
            updateAttdData(2, 'MTH_', 'UPDATE_2');
            updateAttdData(3, 'MTH_', 'UPDATE_3');
            updateAttdData(4, 'MTH_', 'UPDATE_4');
        });
    });
</script>
<div>
    <button type="button" id="ProcTest">Stored Proc Test</button>
</div>
<div>
    <table>
        <thead>
            <tr>
                <th>&nbsp;</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><img id="Process1_Image" src="images/loading.gif"
                    alt="Processing..." style="visibility: hidden" width="32"
                    height="32" /></td>
                <td><div id="Process1_Div">UPDATE_1</div></td>
            </tr>
            <tr>
                <td><img id="Process2_Image" src="images/loading.gif"
                    alt="Processing..." style="visibility: hidden" width="32"
                    height="32" /></td>
                <td><div id="Process2_Div">UPDATE_2</div></td>
            </tr>
            <tr>
                <td><img id="Process3_Image" src="images/loading.gif"
                    alt="Processing..." style="visibility: hidden" width="32"
                    height="32" /></td>
                <td><div id="Process3_Div">UPDATE_3</div></td>
            </tr>
            <tr>
                <td><img id="Process4_Image" src="images/loading.gif"
                    alt="Processing..." style="visibility: hidden" width="32"
                    height="32" /></td>
                <td><div id="Process4_Div">UPDATE_4</div></td>
            </tr>
        </tbody>
    </table>
日志

当我像上面的问题一样运行它时,我得到的日志表明,我得到了这个(我用星号

Info: Test page load   
Info: null - null   
Info: null - null    
Info: MTH_ - UPDATE_1    
Info: null - null    
Info: Test page load    
Info: MTH_ - UPDATE_1
Info: MTH_ - UPDATE_2
Info: MTH_ - UPDATE_3
Info: MTH_ - UPDATE_4
如果你需要更多的信息,我会根据需要更新这篇文章

编辑
因此,它似乎不仅不适用于IE,而且只适用于POST类型。我可以整天使用GET,但我想使用POST。POST在Chrome中工作,但95%的用户都在使用IE。

当您到达
成功
错误
回调时,调用ajax的函数中的变量不再存在。这些是callbacks,而不是类的成员。好的,解决方案是通过在服务器端(在ajax请求调用的页面中)打印一些内容来返回ajax回调,并使用这些内容。例如,如果您正在从服务器端打印一些JSon(请注意
数据
参数,其中包含您在服务器端打印的内容):


这不是问题所在。问题在于发送到servlet的数据。如果我像您在代码块中所说的那样,图像和文本部分将停止一起工作。
Info: Test page load   
Info: null - null   
Info: null - null    
Info: MTH_ - UPDATE_1    
Info: null - null    
Info: Test page load    
Info: MTH_ - UPDATE_1
Info: MTH_ - UPDATE_2
Info: MTH_ - UPDATE_3
Info: MTH_ - UPDATE_4
        success : function(data) {
            $('#Process' + data.processNum + '_Div').append("...Successful").css('color', 'green');
            $('#Process' + data.processNum + '_Image').attr("src","images/greencheck.png");
        },