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 Select标记中options操作方法集合
Oct 22 Javascript
js URL参数的拼接方法比较
Feb 15 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
js点击文本框弹出可选择的checkbox复选框
Feb 03 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
angularjs 获取默认选中的单选按钮的value方法
Feb 28 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 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+mysql写的留言本
2006/10/09 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php生成验证码函数
2015/10/20 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python实现配置文件备份的方法
2015/07/30 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
python的Jenkins接口调用方式
2020/05/12 Python
如何表示python中的相对路径
2020/07/08 Python
python如何提升爬虫效率
2020/09/27 Python
毕业生就业推荐信范文
2013/12/01 职场文书
物流专员岗位职责
2014/02/17 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
教师节横幅标语
2014/10/08 职场文书
应急管理工作总结2015
2015/05/04 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
python cv2图像质量压缩的算法示例
2021/06/04 Python