必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

axios的介绍就不用了吧必威:,首先就是引入ax

2019-11-09 07:13 来源:未知

关键讲的正是本身自身在率先次接收axios中遭逢的难点,及贰遍封装

斩草除根vue第22中学动用axios http央浼现身的主题材料,vue2axios

接受axios管理post央求时,现身的难点消除

默许境况下: axios.post(url, params).then(res => res.data);

当url是长途接口链接时,会报404的乖谬:

Uncaught (in promise) Error: Request failed with status code 404

我们需求实例化二个新的axios,何况安装他的新闻头为'content-type': ‘application/x-www-form-urlencoded'

于是得出施工方案:

var instance = axios.create({
 headers: {'content-type': 'application/x-www-form-urlencoded'}
});
instance .post(`url`, params).then(res => res.data);

下一场发掘不报错了,不过后台采取不到传播参数,查阅资料,发掘需求引进叁个qs模块

var qs=require('qs');
var instance = axios.create({
 headers: {'content-type': 'application/x-www-form-urlencoded'}
});
instance .post(`url`, qs.stringify(params)).then(res => res.data);

劳苦功高告成!

难点解决!

如上那篇解决vue第22中学动用axios http央浼现身的主题素材正是小编分享给大家的全体内容了,希望能给大家贰个参阅,也希望我们多多指教帮客之家。

http诉求现身的主题素材,vue2axios 使用axios管理post央求时,现身的难题消除 默许情形下: axios.post(url, params).then(res = res.data...

//安装格局

 

src=""

 1 ajax: function (opt) {
 2   var opts = opt || {};
 3 
 4   if (!opts.url) {
 5     alert(接口都不写,想干嘛?');
 6     return false;
 7   }
 8   if (opts.type === undefined) {
 9     opts.type = 'post'
10   }
11   axios({
12     method: opts.type,
13     url: opts.url,
14     // `params` 是即将与请求一起发送的 URL 参数
15     // 必须是一个无格式对象(plain object)或 URLSearchParams 对象
16     params: (opts.type === "get") ? opts.data : {},
17     // params:opts.data,
18 
19     // `data` 是作为请求主体被发送的数据
20     // 只适用于这些请求方法 'PUT', 'POST', 和 'PATCH'
21     // 在没有设置 `transformRequest` 时,必须是以下类型之一:
22     // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
23     // - 浏览器专属:FormData, File, Blob
24     // - Node 专属: Stream
25     data: (opts.type === "post") ? qs.stringify(opts.data) : {},
26     headers: opts.headers || {
27       'Content-Type': 'application/x-www-form-urlencoded'
28     },
29     // `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
30     // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
31     baseURL: '你的接口地址/',
32     // `transformRequest` 允许在向服务器发送前,修改请求数据(请求前处理)
33     // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
34     // 后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream
35     transformRequest: [function (data) {
36       // 对 data 进行任意转换处理38       return data;
39     }],
40     // `transformResponse` 在传递给 then/catch 前,允许修改响应数据(请求返回的数据)
41     transformResponse: [function (data) {
42       // 对 data 进行任意转换处理
43       return data;
44     }],
45     // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
46     // 如果请求话费了超过 `timeout` 的时间,请求将被中断
47     timeout: opts.time || 10 * 1000,
48     //返回数据类型
49     responseType: opts.dataType || 'json'
50   }).then(function (res) {
51     console.log(res);
52     if (res.status == 200) {
53       if (opts.success) {
54         opts.success(res.data, res);
55       }
56     } else {
57       alert(res.data.error);
58     }
59   }).catch(function (error) {
60     //请求已发出,但服务器使用状态代码进行响应
61     //落在2xx的范围之外
62     console.log(error);
63     if (opts.error) {
64       opts.error(error);
65     } else {
66       //在设置触发错误的请求时发生了错误
67       alert('出错了');
68     }
69     console.log(error.config);
70   });
71 
72 },

npm install axios

先来讲说叁次封装,以前本身也是英特网找了比超级多同桌的包裹,要么正是把post和get诉求分开的,要么便是只大概写了黄金年代种的照旧只是吧API又复制粘贴了的,都不太相符实际的利用,那就自个儿写呗

axios提供了须臾间三种恳求方式

axios.request(config)

axios.get(url[, config])

axios.delete(url[, config])

axios.head(url[, config])

axios.post(url[, data[, config]])

axios.put(url[, data[, config]])

axios.patch(url[, data[, config]])

此处的config是对部分主旨音信的配备,比如央求头,baseU奥迪Q3L,当然这里提供了风度翩翩部分比较平价配置项

//config

import Qs from 'qs'

{  

 //央求的接口,在呼吁的时候,如axios.get(url,config);这里的url会覆盖掉config中的url

url: '/user',

  // 央求方法同上method: 'get',// default// 底蕴url前缀baseU大切诺基L: '',

transformRequest: [function (data) {

    // 这里能够在出殡和下葬央浼此前对央求数据做处理,譬如form-data格式化等,这里能够选择起来引进的Qs(这几个模块在安装axios的时候就已经设置了,无需其它安装卡塔 尔(阿拉伯语:قطر‎

data = Qs.stringify({});

    return data;

  }],transformResponse: [function (data) {

    // 这里提前管理回来的多少

    return data;

  }],

  // 诉求头新闻

headers: {'X-Requested-With': 'XMLHttpRequest'},

  //parameter参数 

 params: {

    ID: 12345  

},

  //post参数,使用axios.post(url,{},config);若无额外的也亟供给用一个空对象,不然会报错  

data: {

    firstName: 'Fred' 

 },

  //设置超时时间

timeout: 1000,

//重回数据类型  

responseType: 'json', // default

}

有了配置文件,大家就能够减掉过多外加的管理代码也越来越赏心悦目,直接运用

axios.post(url,{},config)

    .then(function(res){

        console.log(res);

    })

    .catch(function(err){        console.log(err);    })

//axios央浼重回的也是多少个promise,追踪错误只需求在结尾加三个catch就足以了。

//下边是关于同不常候提倡七个央浼时的管理

axios.all([get1(),get2()])  .then(axios.spread(function (res1,res2) {// 独有多个央浼都产生才会马到功成,不然会被catch捕获

  }));

最后还是说一下布局项,上边讲的是外加安插,假诺您不想其它写也得以一向配备全局

axios.defaults.baseURL = '';

axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

//当然还可以如此配置

var instance=axios.create({  baseURL:''

});

TAG标签:
版权声明:本文由必威发布于必威-操作系统,转载请注明出处:axios的介绍就不用了吧必威:,首先就是引入ax