angular 中使用 axios 发起 http 请求

angular 中使用 axios

/**

* 在angular 中引入第三方 http 模块的使用, 以 axios 为例

* 有两种使用方法:(本文使用Promise简单封装)

* 一. 直接在要使用请求的组件中 import axios from ‘axios‘, 调用: axios.get/ axios.post ...

* 二. 封装成服务:

*          1. 引入 axios: import axios from ‘axios‘

*          2. 用 promise rxjs 回调函数 3 种方式任选其一进行封装

*/

1. axios.service.ts中

import { Injectable } from ‘@angular/core‘;

import axios from ‘axios‘

@Injectable({

providedIn: ‘root‘

})

export class AxiosService {

constructor() { }

AxiosGet(api) {

return new Promise((resolve, reject)=>{

axios.get(api).then((res)=>{

resolve(res)

})

})

}

}

2. 根模块中注入:

import { AxiosService } from ‘../service/axios.service‘

providers: [AxiosService]

3. 组件中使用:

// 引入服务

import { AxiosService } from ‘../../service/axios.service‘

@Component({

selector: ‘app-news‘,

templateUrl: ‘./news.component.html‘,

styleUrls: [‘./news.component.css‘]

})

export class NewsComponent implements OnInit {

public newsList: any[]

constructor(public $axios: AxiosService) { }

ngOnInit() {

}

axiosGetData() {

let url = ‘/search/interface/getrelatequery?word=%E6%99%8B%E6%B1%9F‘

this.$axios.AxiosGet(url).then((data)=>{

console.log("axios GET 请求: ", data)

})

}

}

原文地址:https://www.cnblogs.com/monkey-K/p/11621801.html

时间: 2024-10-11 03:27:45

angular 中使用 axios 发起 http 请求的相关文章

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

angular中处理多个异步请求的方法汇总

在实际业务中经常需要等待几个请求完成后再进行下一步操作.但angularjs中$http不支持同步的请求. 解决方法一: $http多层嵌套 $http.get('url1').success(function (d1) { $http.get('url2').success(function (d2) { //处理逻辑 }); }); 解决方法二: then中的方法会按顺序执行. var app = angular.module('app',[]); app.controller('promi

在vue中使用axios发送post请求,参数方式

由于后台接收的参数格式为FormData格式, 在axios中参数格式默认为, 在传参数前,将原先官方提供的格式 改为如下: axios({ url: '../../../room/listRoomPage', method: 'post', data: {offset: 0, limit: 9999, roomCode: "", roomtypeId: 0, floorId: 0}, transformRequest: [function (data) { var oMyForm =

Ecstore中如何调用发起Ajax请求

Ecstore的JS框架使用了mootools,所以ajax调用也使用mootools中的Request组件. 语法: var myRequest = new Request([options]); 参数: options - (object, 可选) 参见下列可选项 可选项: url - (string: 默认为 null) 请求的目标URL method - (string: 默认为 'post') HTTP请求方法, 可以是: 'post' 或 'get' data - (string:

axios发起post请求,url后面的参数自动拼接到Request URL上

最近遇到一个神奇的bug,当通过路由query传参跳转到新的页面时,新页面请求接口的Request URL后面自动拼接上了query传参 具体如下: 跳转路由是这样的 let path = "********";this.$router.push({path:path,query:{keyWord:"零食"}}) 跳转到新的页面后新页面所有请求接口的地址 https://api.*********.com/?g=home_v2&m=taobaoInt&

vue中使用axios(异步请求)和mock.js 模拟虚假数据

一.使用axios 1.安装 npm install --save axios 2.引用 import Axios from 'axios' Vue.prototype.Axios = Axios 二.使用mock 1.安装 npm install --save mockjs 2.创建mock目录 3.创建mock.js 4.引用 import mockData from './mock/mock' 5.使用 this.Axios.post('/getNewsList/').then(funct

vue 中使用 axios 请求接口,请求会发送两次问题

在开发项目过程中,发现在使用axios调用接口都会有两个请求,第一个请求时,看不到请求参数,也看不到请求的结果:只有第二次请求时才会有相应的请求参数以及请求结果: 那为甚么会有这么一次额外的请求呢,后面经过查证资料发现: 如果只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件并且跨域的时候,就会自动发起这个请求了.这样就很显然了,我们有 upload 事件绑定(一般都是本地调试,所以会有跨域),看了下 axios 文档,发现config配置文件中有

在vue中使用axios实现跨域请求并且设置返回的数据的格式是json格式,不是jsonp格式

在vue中使用axios实现跨域请求 需求分析:在项目中需要抓取qq音乐的歌曲列表的数据,由于要请求数据的地址url=https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg.从qq音乐的官网上可以看到该请求的请求头中的referer中的域名是y.qq.com(发送请求页面的域名),而host的域名是c.y.qq.com(被请求页面的域名),由于两者不一样,所以不能通过前端直接发送请求给qq服务器去拿数据.这时候需要服务器做一个代理

angular 中的 http 请求

angular 中使用 http 请求的前提,需要引入 httpClientModule 模块 根模块中 app.module.ts: import { HttpClientModule } from '@angular/common/http' imports: [ BrowserModule, AppRoutingModule,   HttpClientModule ], 组件中: import { HttpClient} from '@angular/common/http' constr