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


    基本语法:

    $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: 这样一个函数,具体是什么暂时不详  

    复制代码
    function (name) {
        if (!headersObj) headersObj =  parseHeaders(headers);
    
        if (name) {
            return headersObj[lowercase(name)] || null;
        }
    
        return headersObj;
    }
    复制代码

      ④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

  • 相关阅读:
    Sqlserver 迁移数据库批量迁移作业(Job)
    在VS2010开发的MVC3 应用程序中设定默认的浏览器
    创建继承自System.Web.UI.WebControls.WebControl基类的控件类
    遍历页面控件
    @fontface
    加密配置节点
    视图状态的程序分块
    BlogEngine.NET 1.5的BlogProvider、DbBlogProvider
    避免target特性
    SCOPE_IDENTITY、IDENT_CURRENT 、@@IDENTITY
  • 原文地址:https://www.cnblogs.com/liulangmao/p/3865000.html
Copyright © 2020-2023  润新知