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 相关文章推荐
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
触屏中的JavaScript事件分析
Feb 06 Javascript
jquery实现简单实用的弹出层效果代码
Oct 15 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
Bootstrap实现带动画过渡的弹出框
Aug 09 Javascript
详解jQuery的Cookie插件
Nov 23 Javascript
vue-router跳转页面的方法
Feb 09 Javascript
angularjs项目的页面跳转如何实现(5种方法)
May 25 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
Node.js Event Loop各阶段讲解
Mar 08 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 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 GD绘制24小时柱状图
2008/06/28 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
高中军训广播稿
2014/01/14 职场文书
小学语文教学反思
2014/02/10 职场文书
聘任证明怎么写
2015/03/02 职场文书
大学生读书笔记大全
2015/07/01 职场文书
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs