Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 如果目标URL没有返回呢_Java_Jquery_Ajax_Servlets - Fatal编程技术网

Java 如果目标URL没有返回呢

Java 如果目标URL没有返回呢,java,jquery,ajax,servlets,Java,Jquery,Ajax,Servlets,这是我用来按固定时间间隔点击URL的示例代码 $(document).ready(function() { var counter = 1; $.doTimeout( 1000, function() { $.ajax({ type: "GET", url: "<%=encodeUrl%>", timeout: 10000, dataType: "text

这是我用来按固定时间间隔点击URL的示例代码

$(document).ready(function() {
    var counter = 1;

    $.doTimeout( 1000, function() {
        $.ajax({
            type: "GET",
            url: "<%=encodeUrl%>",
            timeout: 10000,
            dataType: "text",

            complete: function(resp) {
                if (resp.status == 200) {
                    $("#msg").html(counter++);
                } else {
                    $("#msg").html("Failed");
                    return true;
                }
            }
        });
    });
});
$(文档).ready(函数(){
var计数器=1;
$.doTimeout(1000,函数(){
$.ajax({
键入:“获取”,
url:“”,
超时:10000,
数据类型:“文本”,
完成:功能(resp){
如果(各自状态==200){
$(“#msg”).html(计数器++);
}否则{
$(“#msg”).html(“失败”);
返回true;
}
}
});
});
});

目标URL是一个servlet,它将控件转发给另一个JSP。根据我的理解,我必须被重定向到新的页面。但它显示的是计数器值为1的同一页。也就是说,从目标servlet重定向不起作用。而响应将返回到同一页面。

AJAX并不意味着重定向。这些标题不会被你的浏览器执行,因此让你停留在那个页面上!
您的servlet返回的确切代码是什么?

这些代码正是它编写的目的。您正在启动一个ajax调用,在响应200时,您将计数器设置为
#msg
的html。代码中没有任何内容会使您重定向到
新页面


如果要重定向,这里不需要ajax。否则,如果重定向基于servlet返回的响应,请在
complete
中捕获它,并设置
window.location.href='your/redirect/url/'
以加载新页面。

当AJAX响应是重定向到另一页面时,重定向页面将作为AJAX请求的响应被获取,这就是为什么您的HTTP状态只有200个

您无法根据使用AJAX收到的HTTP状态代码处理重定向

AJAX响应无法将您重定向到不同的页面,除非您对其进行编程

因此,如果您希望基于AJAX响应重定向,那么应该修改服务器端代码,将重定向URL作为响应发送给您,而不是重定向


请参阅

注意,“转发”是一个特定的JSP/Servlet术语,这意味着控制器Servlet被指示使用指定的JSP文件作为视图。这里没有HTTP 3nn重定向的方法。window.location.href是一个不错的选择。但是我不能使用它,因为url是在运行时编码的。并且一些动态参数被添加到URL中。我的servlet除了检查DB值之外什么都不做。如果值存在,则重定向到另一个JSP页面。否则返回到呼叫pageWell!根据你的建议,我删除了中间页。我已经将ajax代码放在JSP上需要重定向的地方。如果一切正常,我会显示页面内容。否则显示相应的页面。谢谢