Angular开发(十六)-HTTP请求的详细介绍
来源:互联网 发布:免费网络课程 编辑:程序博客网 时间:2024/06/14 01:44
在项目开发中避免不了要跟服务器端数据链条,进行数据的增删改查操作,传统的方式用的是ajax
,新一代网络请求fetch
,angular
中默认注入了HttpModule
,如果在网络请求中出现跨域的问题,请先看angular自带的代理方式处理跨域
一、Http
源码介绍
源码中提供了几个方法,下面我们介绍两个比较常用的get与post请求,至于别的request,put,delete,patch,head
可以自己去查看
- get(url: string, options?: RequestOptionsArgs): Observable;
post(url: string, body: any, options?: RequestOptionsArgs): Observable;
上面两个方法中:1、返回数据类型都是
Observable
的响应式编程的可观察对象- 2、get请求必填字段是url
- 3、post请求必填字段url,请求体
- 4、可选参数是请求头信息
二、get
请求的介绍
- 1、普通展现方式
//ts文件import { Component, OnInit } from '@angular/core';import {Http} from "@angular/http";import {Observable} from "rxjs";import "rxjs/Rx";@Component({ selector: 'app-demo05', templateUrl: './demo05.component.html', styleUrls: ['./demo05.component.css']})export class Demo05Component implements OnInit { private dataSource:Observable<any>; private data:Array<any> = []; constructor(private http:Http) { this.dataSource = this.http.get("/getdata").map(res=>res.json()); } //点击获取数据 getData(){ this.dataSource.subscribe((data)=>{ this.data = data; }) } ngOnInit() { }}
//html代码<h3>我是get请求获取数据</h3><input type="button" value="点击我获取数据" (click)="getData()"/><ul *ngIf="data.length > 0"> <li *ngFor="let item of data;let i = index;"> {{i+1}}--{{item.bookname}}--{{item.bookauthor}}--{{item.price}} </li></ul>
- 2、封装为单独的服务
//ts代码import { Component, OnInit } from '@angular/core';import {Http1Service} from "./../server/http1.service";@Component({ selector: 'app-demo06', templateUrl: './demo06.component.html', styleUrls: ['./demo06.component.css'], providers:[Http1Service]})export class Demo06Component implements OnInit { private data:Array<any> = []; constructor(private http1Service:Http1Service) { } ngOnInit() { } getData(){ this.http1Service.getContacts().subscribe(data=>{ this.data = data; }) }}
//服务的代码import { Injectable } from '@angular/core';import {Http, Headers} from "@angular/http";import {Observable} from "rxjs";import "rxjs/Rx";@Injectable()export class Http1Service { constructor(private _http:Http) { } getContacts():Observable<any[]>{ /** * 给头部添加请求头 */ let myHeaders:Headers = new Headers(); myHeaders.append("tocken","abcdefgh"); myHeaders.append("app","32486876"); return this._http.get("/getdata",{headers:myHeaders}).map(res=>res.json()); }}
//html代码<h3>我是get请求获取数据</h3><input type="button" value="点击我获取数据" (click)="getData()"/><ul *ngIf="data?.length > 0"> <li *ngFor="let item of data;let i = index;"> {{i+1}}--{{item.bookname}}--{{item.bookauthor}}--{{item.price}} </li></ul>
三、post请求
对于post提交数据跟get差不多,只是多了一个数据提交到服务器,主要点:
- 1、提交数据要转换json字符串
- 2、新增头信息
let myHeaders:Headers = new Headers();myHeaders.append("Content-Type","application/json");
阅读全文
0 0
- Angular开发(十六)-HTTP请求的详细介绍
- angular的http请求方式
- Angular开发(十四)-利用angular的http转发、即代理http 请求,处理项目中请求跨域的问题
- HTTP请求头和相应头的详细介绍
- HTTP请求头和相应头的详细介绍
- HTTP请求头和相应头的详细介绍
- angular的http三种请求方式
- Angular学习:http请求失败的问题
- Angular----$http请求数据
- http请求的详细过程
- http请求的详细过程
- http请求的详细过程
- http请求的详细过程
- http请求的详细过程
- HTTP请求的详细过程
- http请求的详细过程
- HTTP的详细请求过程
- http请求的详细过程
- Tensorfloe教程-深入mnist
- matlab转为c或者c++
- cookie
- 斯坦福机器学习实验之2-逻辑回归(Logistic Regression)
- javascript中的数据类型
- Angular开发(十六)-HTTP请求的详细介绍
- Android初级教程
- linux 安装jdk1.8操作
- 使用Eclipse搭建Node.js开发环境
- 新手在虚拟机上搭建hadoop,zookeepe,hbase,spark
- Tensorflow教程-TensorFlow运作方式入门
- Dom对象,js对象和jquery对象的区别
- (看得懂的)海明码的编码和校验方法
- partial关键字