http请求

一、http请求中get、post、put、delete的使用场景分别是什么?

Get:get请求会向数据库发起索取数据的请求,从而获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

Post:post请求是向服务端发送数据的,该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

Put:PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

Delet:用来删除某一个资源的,该请求就像数据库的delete操作。

二、如何使用浏览器取消一个正在请求的ajax

原生XHR:

var native=new XMLHttpRequest();
navive.open("GET","https://api.github.com");
native.send();
native.onreadystatechange=function(){
 if(native.readyState==4&&native.status==200){
        console.log(native.response);       
    }else{
        console.log(native.status);
    }
}
native.abort();//取消请求

Axios取消请求:

const CancelToken=axios.CancelToken
let call:
axios.get('/user/12345',{
cancelToken:new CancelToken(
// executor 函数接收一个 cancel 函数作为参数,这个参数 c 就是CancelToken构造函数里面自带的取消请求的函数,这里把该函数当参数用 cancel = c;
)
})
cancel();//取消请求

三、content-type?

互联网媒体类型;在http协议消息头中,使用Content-Type来定义具体请求的媒体类型信息。

application/json:消息主体是序列化后的 JSON 字符串

application/x-www-form-urlencoded: 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性, 那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求的时候,首先,Content-Type 被指定为 application/x-www-form-urlencoded; 其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码。 大部分服务端语言都对这种方式有很好的支持。

multipart/form-data: 我们使用表单上传文件时,必须让 form 的 enctyped 等于这个值。

如果数据是简单、平面的key-value键值对,那么使用application/x-www-form-urlencoded简单实用,不需要额外的编解码

如果数据是复杂的嵌套关系,有多层数据,那么使用application/json会简化数据的处理

posted @ 2021-11-26 14:53  前端乔  阅读(85)  评论(0编辑  收藏  举报