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中的noscript元素属性位置及作用介绍
Apr 11 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
Apr 06 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
在vue中使用console.log无效的解决
Aug 09 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
Moment的feature导致线上bug解决分析
Sep 23 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php对数组排序代码分享
2014/02/24 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python常见数据类型转换操作示例
2019/05/08 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
jupyter notebook 重装教程
2020/04/16 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
单位未婚证明范本
2014/01/18 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
保险公司增员口号
2015/12/25 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL