首頁 >php教程 >php手册 >http请求失败有哪些原因

http请求失败有哪些原因

WBOY
WBOY原創
2016-06-06 20:14:034077瀏覽

今天被问到这个问题,被问当时毫无头绪,只非常抽象的回答了一些可能的网络问题。感觉当时的回答非常不好,下班之后就继续思考这个问题的答案。思考的问题的过程中突然想到最近才了解到的jquery.deferred,jquery.deferred对ajax请求的结果主要会进行两种情况

今天被问到这个问题,被问当时毫无头绪,只非常抽象的回答了一些可能的网络问题。感觉当时的回答非常不好,下班之后就继续思考这个问题的答案。思考的问题的过程中突然想到最近才了解到的jquery.deferred,jquery.deferred对ajax请求的结果主要会进行两种情况的处理,done和fail.想到这里,突然脑海中灵光一闪:原来这个问题考的是http状态码。到了这一步,标题中的答案突然明朗了。

接下来只要确定在所有的http状态码里面哪些是表示成功,哪些是表示失败,就可以完全解答这个问题。

网络上的一些文档里面有http状态码的描述,但是没有明确说明成功和失败,这里,我们通过代码进行一下检测。
服务器端代码http.php用来返回指定的状态吗

<?php /**
 * Created by PhpStorm.
 * User: bandit
 * Date: 13/12/2014
 * Time: 12:09
 */
http_response_code($_REQUEST['code']);

通过同步的ajax请求获取成功和失败的状态码




    <meta charset="UTF-8">
    <title></title>
    <script src="http://blog.icodeu.com/" http:></script>


<script type="application/javascript">
    var codes = [100,101,102,200,201,202,203,204,205,206,207,300,301,302,303,304,305,306,307,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,421,422,424,425,426,449,500,501,502,503,504,505,506,507,509,510];
    var suc = [];
    var fail = [];
    $.ajaxSetup({async:false});
    for(var i in codes){
        $.ajax({
            type: "POST",
            url: "http.php",
            data: {"code":codes[i]}
        })
                .done(function(){ suc.push(codes[i]);})
                .fail(function(){ fail.push(codes[i]);})
    }
    console.log(suc.toString());
    console.log("'-------------------------------------------');
    console.log(fail.toString());
</script>


通过chrome console里面返回的内容,我们就可以知道你哪些是成功的哪些是失败的。
200,201,202,203,204,205,206,207,304 VM2169:15
——————————————-
100,101,102,300,301,302,303,305,306,307,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,421,422,424,425,426,449,500,501,502,503,504,505,506,507,509,510

简单来说200范围以及304的状态码都是表示成功的,其他均表示失败。关于状态码的描述则就是我们这篇文章的答案。

关于状态码的更详细信息请参考维基百科

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn