Angular--$http服务

关于Angular中$http 服务是对XMLHttpRequest 对象的封装,向服务器发送请求;php

下面本身在angular中$http学习的一个记录,json

GET请求(先贴码)后端

angualr代码:promise

var app = angular.module('app',[]);
    

    app.controller('contr',['$scope', '$http', '$window',function($scope, $http, $window){
        $scope.num = "0";
        $scope.result = "偶数";

        $scope.chk = function(){
            $http({
                method: 'POST',
                url: '/chk.php',
                params: {
                    num: $scope.num
                }
            }).success(function(data, status, headers, config){
                
                data = angular.fromJson(data);
                $scope.result = data['type'];

            }).error(function(data, status, headers, config){
                
                console.log('faild!');

              });
        };

    }]);

PHP代码:服务器

<?php 

function chk($num){
    return ($num%2) == 0 ? true : false;
}

//$num = $_POST["num"];
$num = $_GET["num"];

if (chk($num)){
    echo '{"type": "偶数"}';
} else {
    echo '{"type": "奇数"}';
}

?>
View Code

 

$http方法有俩种写法,第一种是上面的写法,另外一种是promise的写法;$http().then(fn({data, status, statusText, headers}), fn2()); app

针对GET请求,我目前发现$http服务只须要关注三个参数:method, url, params; 根据succuss函数返回data中的具体数据转化,若是是json数据须要使用angular.fromJson()方法进行转化,ide

 

POST请求(先贴码)函数

var app = angular.module('app',[]);
    

    app.controller('contr',['$scope', '$http', '$window',function($scope, $http, $window){
        $scope.num = "0";
        $scope.result = "偶数";

        $scope.chk = function(){
            $http({
                method: 'POST',
                url: '/chk.php',
                data: {
                    num: $scope.num
                },
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' },    
                transformRequest: function(obj) {    
                    var str = [];    
                    for (var p in obj) {    
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));    
                    }    
                    return str.join("&");    
                } 
            }).success(function(data, status, headers, config){
                
                data = angular.fromJson(data);
                $scope.result = data['type'];

            }).error(function(data, status, headers, config){
                
                console.log('faild!');

              });
        };

    }]);
View Code

在使用angular的$http中的POST请求时,须要关注的参数要比GET多:method, url, data, headers, transformRequest;上述参数必须设置,否则后端可能没法获取到(可能个人php知识太菜了,只能写那种简单的获取方式 - -);学习

在php代码中我就不重复贴,只是将对应的$_GET["value"]换成 $_POST["value"]便可;url

相关文章
相关标签/搜索