HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。

  • GET,通过请求URI得到资源
  • POST,用于添加新的内容
  • PUT用于修改某个内容
  • DELETE,删除某个内容
  • PATCH,部分文档更改

get请求

一般数据都在URL传参,params:data

eg: Request URL:http://api.anjianba.cn/api/Training/Query或者Request URL:http://api.anjianba.cn/api/Training/Query/23

{
name:"Myname",
{
types:[1,3],
forms:[2,5]
}
}

如果传递比较复杂的数据时,Query String Parameters,后台不喜欢处理这种数据

正常的处理之后:Request URL:http://api.anjianba.cn/api/Training/Query?planName=&startTime=&endTime=&types[]=1&types[]=3

需要这种形式的:Request URL:http://api.anjianba.cn/api/Training/Query?planName=&startTime=&endTime=&types=1&types=3

在jQuery中是设置 traditional:true,即可转换为如上数据类型。

axios的config中设置:

 get(url, data = {}, options = {}) {
let config = {
params: data,
headers: {
、、、
},{
'paramsSerializer': function(params) {
return qs.stringify(params, { indices: false })
// return qs.stringify(params, { arrayFormat: "repeat" })
},
...options
}
return new Promise((resolve, reject) => {
axios.get(url, config)
.then(response => {
resolve(response.data);
})
.catch((error) => {
reject(error);
})
})
}

post、put、delet请求

提交这种复杂类型数据:

{
name:"Myname",
{
types:[1,3],
forms:[2,5]
}
}
  • 一般的数据提交类型为json,

    • 对应的数据声明类型: 'Content-Type':'application/json'
    • 序列化:JSON.stringify(data) json字符串
  • 还有 FormData 类型的
    • 对应的数据声明类型: 'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'

    • 序列化:qs.stringify(data) ids[]=27&ids[]=26 ==> ids%5B0%5D=27&ids%5B1%5D=26

      注意:谷歌浏览器最多有6个请求并行,简而言之,你可以取消请求,前端不接受请求,但是请求资源一旦占用,pending状态结束前不可使用
      window._axiosPromiseArr=[];
      //设置cancel函数
      config.cancelToken = new axios.CancelToken(cancel=>{
      window._axiosPromiseArr.push({cancel});
      });
      //手动cancel
      window._axiosPromiseArr.forEach((el,index)=>{
      el.cancel();
      });
      window._axiosPromiseArr = [];

最后感谢夏大师的一起讨论研究,为本文成稿做出重要贡献

http请求方式和传递数据类型的更多相关文章

  1. android post带数据请求方式,传递的数据格式包括json和map

    如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConn ...

  2. Android为TV端助力 post带数据请求方式,传递的数据格式包括json和map

    如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConn ...

  3. Postman支持的几种数据类型请求方式

    一.postman作为web应用开发工具,可以用于模拟多种请求方式,但是支持的传参类型又不尽相同.根据面板上的几种数据打包方式来选择合适的请求数据类型. form-data 就是http请求中的mul ...

  4. Axios 各种请求方式传递参数(非axios api 请求方式)

    get delete 方法较为不同 get请求方式将需要入参的数据作为 params 属性的值,最后整体作为参数传递 delete请求方式将将需要入参的数据作为 data 属性的值,最后整体作为参数传 ...

  5. axios 各种请求方式传递参数

    get delete 方法较为不同 注意:每个方法的传参格式不同,具体用法看下方 get请求方式将需要入参的数据作为 params 属性的值,最后整体作为参数传递 delete请求方式将将需要入参的数 ...

  6. jQuery中的Ajax几种请求方式

    1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...

  7. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  8. Web地图服务、WMS 请求方式、网络地图服务(WMS)的三大操作

    转自奔跑的熊猫原文 Web地图服务.WMS 请求方式.网络地图服务(WMS)的三大操作 1.GeoServer(地理信息系统服务器) GeoServer是OpenGIS Web 服务器规范的 J2EE ...

  9. 第十九节:Asp.Net Core WebApi基础总结和请求方式

    一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方 ...

随机推荐

  1. .NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 =>  Steeltoe目录快速导航: 1. 基于Steeltoe使用Spring Cloud Eureka 2. 基于Steelt ...

  2. centos安装rabbitmq

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

  3. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  4. postgresql如何让主键自增

    法一: Sql代码 收藏代码 CREATE TABLE customers ( customerid SERIAL primary key , companyname character varyin ...

  5. vue2.0 实现全选和全不选

    实现思路: 1. v-model 一个收集所有input(除全选框外)数组checkModel ,vue会动态将其checked为true的input的value值存入数组checkModel里 2 ...

  6. thinkphp5路由心得

    路由的作用:1. 简化URL地址,方便大家记忆2. 有利于搜索引擎的优化,比如可以被百度的爬虫抓取到 优化URl1. 前后端分离修改入口文件,在public下新建admin.php文件,将下面的代码添 ...

  7. 超级有爱的五款APP共享 可以让你神操作

    随着科技的不断发展,手机功能的不断完善,让我们更加依赖手机,不得不说手机给我们带来很多的乐趣和方便. 今天就主要给大家分享五款超级有爱的APP软件,感兴趣的小伙伴已经迫不及待了吧! 荔枝 荔枝是一款声 ...

  8. openlayers二:添加矢量图形文字

    openlayers可方便的在地图上添加圆.多边形.文字等矢量内容,修改这些矢量内容的样式也很简单. 首先需要添加一个向量图层: initVectorLayer: function () { this ...

  9. Android AutoCompleteTextView和MultiAutocompleteTextView实现动态自动匹配输入的内容

    AutoCompleteTextView MultiAutocompleteTextView 这两个控件长的很相似,功能也很相似. AutoCompleteTextView 功能: 动态匹配输入的内容 ...

  10. Java导出Excel的Springmvc实例

     @RequestMapping(value = "downloadExcel", method = RequestMethod.GET)  public String downl ...