Heim  >  Artikel  >  Web-Frontend  >  $http-Dienstinhalt in AngularJS

$http-Dienstinhalt in AngularJS

一个新手
一个新手Original
2017-09-22 09:22:151136Durchsuche

Verwenden Sie die Verknüpfungsmethode $http, um mit dem Server zu interagieren
In AngularJS umfasst die Interaktion zwischen der Seite und dem Server hauptsächlich den Aufruf von Modulen.
Abhängig vom Anforderungstyp bietet das $http-Modul unterschiedliche Aufrufmethoden. Sein allgemeines Format ist wie folgt.

Parametererklärung:
URL: Stellt einen relativen oder absoluten Serveranforderungspfad dar;
Anfragetyp: Enthält Es gibt Sechs gängige Anforderungsmethoden: POST, GET, JSONP, DELETE, PUT und HEAD. Unter diesen können Anforderungen vom Typ POST und PUT Daten über die optionalen Parameterdaten senden, und die während der Anforderung übergebenen Daten können auch über den optionalen Parameter festgelegt werden config.

Wenn die $http-Anfrage erfolgreich ist, können Sie die vom Server zurückgegebenen Daten und zugehörigen Informationen in der Erfolgsmethode des Rückrufs abrufen.
Daten: Gibt den Parameterrückgabetext an, normalerweise die von der Anforderung zurückgegebene Ergebnismenge.
status: Gibt den Statuswert an, der nach der Anfrage zurückgegeben wird.
Header: Stellt die nach der Anforderung zurückgegebene Header-Datei dar und wird zum Anzeigen der Header-Informationen der zurückgegebenen Anforderung verwendet.
config: ist ein Objekt, über das die vollständigen Konfigurationsinformationen beim Senden einer HTTP-Anfrage abgerufen werden können.

Verwenden Sie das $http-Konfigurationsobjekt, um mit dem Server zu interagieren
Oben haben wir den Prozess der Verwendung der Verknüpfung /$http für die Interaktion mit dem Server vorgestellt. Obwohl diese Methode einfach ist, mangelt es ihr an Flexibilität bei der Konfiguration und sie erfordert viel Code. Als Reaktion auf diese Situation können wir die $http-Dienstvorlage als Funktion verwenden, alle Konfigurationselemente, die das XHR-Objekt erstellen, als Objekt behandeln und das Objekt als formalen Parameter der Funktion definieren. Beim Aufruf müssen nur Änderungen vorgenommen werden Der Wert jedes Attributs ist ausreichend. Das spezifische Aufrufformat ist wie folgt.

$http({
    method: //表示请求方式,是字符串,常有POST、GET、JSONP、DELETE、PUT、HEAD六种方式
    url:    //表示向服务器请求的地址
    data:   //是一个对象,在使用POST/PUT时,该对象将作为消息体的一部分发给服务端
    params: //是字符串或对象,发送HTTP请求时,如果是对象,将自动按json格式进行序列化,并追加到url后面,作为发送数据的一部分,传递给服务器。
    transformRequest://对请求体信息和请求体进行序列化转换,并生成一个数组发送给服务端。
    transformResponse://对相应体头信息和相应体进行反序列化转换,其实质就是解析服务器发送来的被序列化后的数据。
    cache://布尔值(true/false),表示是否对http请求返回的数据进行缓存,如果设置为true,则表示需要缓存。
    timeout://表示延迟http请求的时间,单位是毫秒。})

Zum Beispiel:
Anforderungsbeschreibung:
Fügen Sie der Seite eine Textfeldschaltfläche hinzu. Wenn der Benutzer eine Zahl in das Textfeld eingibt und auf die Schaltfläche klickt, wird die Funktion $http aufgerufen, um eine HTTP-Anfrage an den Server zu senden, die Parität der Zahl zu überprüfen und das Überprüfungsergebnis im Seitenelement anzuzeigen.

<!DOCTYPE html><html ng-app="a7_3"><head>
    <meta charset="UTF-8">
    <title>使用$http配置对象方式与服务端交互</title>
    <script src="../script/angular.min.js"></script>
    <link href="Css/css7.css" rel="stylesheet" ></head><body>
    <p class="frame" ng-controller="c7_3">
        <p class="show">
            <input type="text" ng-model="num">
            <button ng-click="onclick()">验证奇偶</button>
            <p class="tip">您输入的是:{{result}}</p>
        </p>
    </p>
    <script type="text/javascript">
        angular.module(&#39;a7_3&#39;,[])
            .controller(&#39;c7_3&#39;,function($scope,$http){
                $scope.num = 0;
                $scope.result = "偶数";
                $scope.onclick = function(){
                    $http({
                        method: &#39;GET&#39;,
                        url: &#39;data/chk.php&#39;,
                        params:{
                            n: $scope.num
                        }
                    }).success(function(data,status,headers,config){
                        $scope.result = data;
                    })
                }
            });    
      </script>
    </body>          
 </html>

Analyse:
Wenn der Benutzer im js-Code dieses Beispiels auf die Schaltfläche klickt, wird die Onclick-Methode der Schaltflächenbindung ausgelöst. In dieser Methode $ wird als http-Dienst bezeichnet und Parameter in Form von Konfigurationsobjekten wie Methode, URL und anderen Attributwerten an die Funktion übergeben.
Da die GET-Anfrage verwendet wird, wird der Wert im Textfeld in Form von übergeben Schlüssel/Wert über das params-Attribut an den Server übertragen.
In diesem Beispiel ist der endgültige Inhalt der angeforderten URL
htpp://localhost/Ch7/data/chk.php?n=87, wobei n der Schlüsselname und 87 der Schlüsselwert ist ist das Textfeld, in das die Nummer eingegeben wurde.

Wenn die Funktion /$http eine HTTP-Anfrage sendet, können Sie den Dateninhalt und andere vom Server zurückgegebene Header-Informationen über die Methode „succes“ abrufen. Daten sind beispielsweise die zurückgegebenen Daten, also die eingegebene Zahl vom Benutzer im Textfeld eingegeben werden.

In Angular ist der zurückgegebene Inhalt nach der Ausführung der Funktion /$http tatsächlich ein Versprechensobjekt. Daher können Sie die Then-Methode direkt durch Kettenschreiben aufrufen, um Erfolgs- und Ausnahmedaten zu erhalten.

Die folgenden zwei Codeteile haben die gleiche Funktion.

$http({//配置对象})
.succes(fn1)
.error(fn2)

entspricht

$http({//配置对象
})
.then(fn1,fn2)

fn1 und fn2 repräsentieren die Rückgabefunktionen für den Erfolg bzw. Fehler der Anforderung.
Obwohl die Funktionen beider gleich sind. Allerdings kann die Methode then das vollständige Antwortobjekt vom Server empfangen, während die Erfolgs- und Fehlermethoden nur das analysierte und verarbeitete Antwortobjekt empfangen, was bedeutet, dass das von der Methode then erhaltene Rückgabeobjekt origineller und vollständiger ist.

Das obige ist der detaillierte Inhalt von$http-Dienstinhalt in AngularJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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