Heim  >  Artikel  >  php教程  >  http请求失败有哪些原因

http请求失败有哪些原因

WBOY
WBOYOriginal
2016-06-06 20:14:034021Durchsuche

今天被问到这个问题,被问当时毫无头绪,只非常抽象的回答了一些可能的网络问题。感觉当时的回答非常不好,下班之后就继续思考这个问题的答案。思考的问题的过程中突然想到最近才了解到的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的状态码都是表示成功的,其他均表示失败。关于状态码的描述则就是我们这篇文章的答案。

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Yii源码阅读笔记Nächster Artikel:PHP系统设计与云架构