angular学习笔记(二十二)-$http.post

时间:2021-04-05 10:10:06

基本语法:

$http.post('url',{},{}).success(function(data,status,headers,config){
}).error(function(data,status,headers,config){
})

$http.post接受三个参数:

1. url: 请求的路径

2. 请求发送的数据: json对象 {name:'code_bunny'}

3. 请求配置的参数: json对象 {params: {id:5}} 这样得到的实际路径就是url?id=5

$http.post返回的对象有两个回调方法:

1. success: 请求成功的回调

2. error: 请求失败的回调

这两个方法都有四个参数:

①data: 返回的数据(或错误)

②status: 响应的状态码

③headers: 这样一个函数,具体是什么暂时不详  

angular学习笔记(二十二)-$http.post
function (name) {
if (!headersObj) headersObj = parseHeaders(headers); if (name) {
return headersObj[lowercase(name)] || null;
} return headersObj;
}
angular学习笔记(二十二)-$http.post

④congfig: 请求的配置对象

{
method: "GET",
url: "/api/user",
params: {id:5}
}

下面看实例:

将请求的数据对象的name属性的值再返回,放入span标签中

html:

<!DOCTYPE html>
<html ng-app = 'HttpGet'>
<head>
<title>18.2 $http.post方法</title>
<meta charset="utf-8">
<script src="angular.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller = "dataController">
<span>{{data}}</span>
</div>
</body>
</html>

js:

var httpGet = angular.module('HttpGet',[]);
httpGet.factory('getData',function($http,$q){
return function(){
var defer = $q.defer();
$http.post('/api/user',{name:'code_bunny'}).success(function(data,status,headers,congfig){
defer.resolve(data);
}).error(function(data,status,headers,congfig){
defer.reject(data);
}); return defer.promise
}
});
httpGet.controller('dataController',function($scope,getData){
$scope.data = getData()
});

后端node代码:

var express = require('express');
var app = express();
app.use(express.bodyParser());
app.use(express.static(__dirname+'')); app.post('/api/user',function(req,res){
res.send(req.body.name)
}); app.listen(3000);

完成代码地址:https://github.com/OOP-Code-Bunny/angular/tree/master/OREILLY/18.2%20%24http.post