zoukankan      html  css  js  c++  java
  • Angular——$http

    基本介绍

    $http用于向服务端发起异步请求,同时还支持多种快捷方式如$http.get()、$http.post()、$http.jsonp。$hhtp也是属于内置服务的一种,这里特意提出来写一篇用法。

    基本使用

    传递的数据可以是'key=val&key=val'形式,这种形式叫formData,在请求头设置成   'Content-Type': 'application/x-www-form-urlencoded'  ,那么只有采用这样的方式进行传递

    <!DOCTYPE html>
    <html lang="en" ng-app="App">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <ul ng-controller="DemoController">
    </ul>
    <script src="../libs/angular.min.js"></script>
    <script>
        var App = angular.module('App', []);
        App.controller('DemoController', ['$scope', '$http', function ($scope, $http) {
            $http({
                url: '01.php',
                method: 'post',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                //get
                params: {
                    name: 'itcast',
                    sex: ''
                },
                //post
                // data: 'age=10'
                data: { // post 传参
                    age: 10
                }
            }).success(function (info) {
                console.log(info);
            });
        }]);
    </script>
    </body>
    </html>

    get方式

    <!DOCTYPE html>
    <html lang="en" ng-app="App">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <ul ng-controller="DemoController">
    </ul>
    <script src="../libs/angular.min.js"></script>
    <script>
        var App = angular.module('App', []);
        App.controller('DemoController', ['$scope', '$http', function ($scope, $http) {
            $http({
                url: '02.php',
                method: 'get',
                params: {
                    name: 'wqx'
                }
            }).success(function (info) {
                console.log(info);
            });
        }]);
    </script>
    </body>
    </html>

    post方式

    <!DOCTYPE html>
    <html lang="en" ng-app="App">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <ul ng-controller="DemoController">
    </ul>
    <script src="../libs/angular.min.js"></script>
    <script>
        var App = angular.module('App', []);
        App.controller('DemoController', ['$scope', '$http', function ($scope, $http) {
            $http({
                url: '03.php',
                method: 'post',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                data: 'age=19'
            }).success(function (info) {
                console.log(info);
            });
        }]);
    </script>
    </body>
    </html>

     jsonp方式

    (1)跨域的数据传递的数据类型是json,而json是不同平台传递数据的首选,十分方便,下面请求的后台,后台回传的是一个json字符串

    (2)jsonp与ajax请求其实没有多大的关系,因为其内部实现的机制还是src属性的请求方式,这是一个get请求,其实现过程如下:

    1、如果请求是JSONP,那么它的实现过程还是还原到原始的src的方式进行跨域访问
    2、首先是创建一个script标签
    3、添加其src属性,填写后台地址
    4、将script标签添加到head标签中
    5、当script标签的onload事件触发会立刻删除其标签,所以我们是看不见的
    <!DOCTYPE html>
    <html lang="en" ng-app="App">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <ul ng-controller="DemoController">
    </ul>
    <script src="../libs/angular.min.js"></script>
    <script>
        var App = angular.module('App', []);
        App.controller('DemoController', ['$scope', '$http', function ($scope, $http) {
            $http({
                url: '04.php?callback=JSON_CALLBACK',
                method: 'jsonp'
            }).success(function (info) {
                console.log(info);
            });
        }]);
    </script>
    </body>
    </html>

     参数callback是约定俗成的,而值JSON_CALLBACK是angular特有的,在这里的作用相当于占位符,真正传递的时候会发生改变

  • 相关阅读:
    Android NDK学习(1) 简介
    wmsys.wm_concat结果长度限制的问题
    onInterceptTouchEvent和onTouchEvent调用时序
    滑动到底部或顶部响应的ScrollView实现
    Android ViewPager使用详解
    android include标签的使用,在RelativeLayout中使用include标签需注意!!!!!
    Eclipse中如何在指定工程中搜索指定的字符串
    android:windowSoftInputMode属性详解
    cocos2d-x中关于touch事件的响应
    《从零开始学Swift》学习笔记(Day 6)——哎呀常量和变量都该什么时候用啊?
  • 原文地址:https://www.cnblogs.com/wuqiuxue/p/8423318.html
Copyright © 2011-2022 走看看