Angular 数据请求的实现方法


Posted in Javascript onMay 07, 2018

使用 Angular 请求数据的时候,需要引入 HttpModule 模块,如果使用的 jsonp 模式的话,则需要另外引入 JsonpModule 模块

import { HttpModule, JsonpModule } from '@angular/http'

然后在当前模块中的 imports 内进行注册

imports: [
 HttpModule,
 JsonpModule
],

注册以后就可以在组件文件当中引入相对应的方法来进行数据请求了

import { Http, Jsonp } from '@angular/http'

然后在当前组件的构造函数当中进行注入以后就可以使用了

constructor(private http: Http, private jsonp: Jsonp) { }

使用如下,一个简单的 get 请求

// 进行注入,拿到相对应的方法
constructor(private http: Http, private jsonp: Jsonp) { }
public list: any = []
// 请求数据
getData() {
 let url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'
 let _this = this
 this.http.get(url).subscribe((data) => {
  _this.list = JSON.parse(data['_body'])['result']
  console.log(_this.list)
 })
}

前台进行渲染即可

<button (click)="getData()">get 请求数据</button>
<ul>
 <li *ngFor="let item of list">
  {{item.title}}
 </li>
</ul>

JSONP 请求数据

注意区分与 get 请求的区别,使用如下

// 请求数据
jsonpData() {
 let url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1&callback=JSONP_CALLBACK'
 let _this = this
 this.jsonp.get(url).subscribe((data) => {
  _this.list = data['_body']['result']
  console.log(_this.list)
 })
}
// 渲染
<button (click)="jsonpData()">jsonp 请求数据</button>
<ul>
 <li *ngFor="let item of list">
  {{item.title}}
 </li>
</ul>

不同点

请求的 url 参数结尾必须要添加指定的回调函数名称 &callback=JSONP_CALLBACK

请求的方式变为 this.jsonp.get(url)

请求后得到的数据格式不统一,需要自行进行调整

POST 请求

与 GET 的请求方式有些许不同,首先需要引入请求头 { Headers }

import { Http, Jsonp, Headers } from '@angular/http'

然后来对请求头进行定义,需要先实例化 Headers

private headers = new Headers({'Content-Type': 'application/json'})

最后在提交数据的时候带上 Headers 即可

postData() {
 let url = 'http://localhost:8080/login'
 let data = {
  "username": "zhangsan",
  "password": "123"
 }
 this.http.post(
  url,
  data,
  {headers: this.headers}
 ).subscribe((data) => {
  console.log(data)
 })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript学习笔记(十七)js 优化
Feb 04 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
JS中getYear()和getFullYear()区别分析
Jul 04 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
Vue数据驱动模拟实现4
Jan 12 Javascript
js变量值传到php过程详解 将php解析成数据
Jun 26 Javascript
JS实现简单打字测试
Jun 24 Javascript
JavaScript数组去重算法实例小结
May 07 #Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
May 07 #Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 #Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 #Javascript
Vue 实现树形视图数据功能
May 07 #Javascript
JavaScript 跨域之POST实现方法
May 07 #Javascript
ES6关于Promise的用法详解
May 07 #Javascript
You might like
用PHP生成html分页列表的代码
2007/03/18 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
Ext 今日学习总结
2010/09/19 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python私有属性和方法实例分析
2015/01/15 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python下载图片实现方法(超简单)
2017/07/21 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python Selenium参数配置方法解析
2020/01/19 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang