繁体   English   中英

表单提交后可能的HTTP请求状态

[英]Possible HTTP Request states after form submit

我正在尝试提交表单并使用AJAX获取结果页内。 我调用JS函数onsubmit进行AJAX调用,并包含以下代码:

        request=new XMLHttpRequest();
        /* set up request here */
        request.onreadystatechange=function() {
        if (request.readyState == 4 && request.status == 200) {
            /* do what I need */
            alert('Success');
        } else {
            /* do what I need */
            alert('Failed');
        }
    }

但是,“失败”警报在“成功”警报之前显示了多次(至少3次),所以我想我在“成功”警报之前有许多不同的状态? 如何检查提交的内容以及提交失败后的预期结果? 谢谢。

您只会得到一种状态,但是会得到多种状态

检查一下readyState4还是0 (因为这些状态中的任何一个都表明没有更多的等待响应)。

如果为0则抛出错误;如果为4 ,则测试status

如果readyState是其他任何值,则将其忽略(除非您想在其他状态下进行操作)。

该请求分为四个阶段。 readyStates。 每次readystate更新时,都会触发该事件。 0表示失败, 4表示请求已完成。 status返回http代码。 200表示成功。 有一个答案,它返回了一个请求正文 所有其他代码都表明服务器端出了点问题。 例如。 404、403或500。您可以放心地忽略其他readystates 但是捕获除200以外的任何状态为失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM