请求方法 URL HTTP/版本号
, 好比:GET http://m.baidu.com/ HTTP/1.1
,get
请求的参数会直接追加在url上,而post请求的参数是存在请求体中)请求头中Content-Type
的值常见的有application/x-www-form-urlencoded
和application/json
。html
浏览器的原生<form>
表单,若是不设置enctype
属性,那么最终就会以application/x-www-form-urlencoded
方式提交数据,提交的数据按照 key1=val1&key2=val2
的方式进行编码,key
和val
都进行了URL
转码:前端
POST http://www.example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8 title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
application/json
post参数以json的形式传送ios
POST http://www.example.com HTTP/1.1 Content-Type: application/json;charset=utf-8 {"title":"test","sub":[1,2,3]}
HTTP/版本号 返回码 返回码描述
, 好比:HTTP/1.1 200 OK
)Content-Encoding
用做媒体类型的修饰符,好比Content-Encoding:gzip。Content-Type
指明发送给接收者的实体正文的媒体类型。Expires实体报头域给出响应过时的日期和时间。)跨域的方案有不少种,看了阮一峰的关于cors
文章,对cors
有了理解,cors跨域主要是要在服务端进行设置,以koa为例json
import Koa from 'koa' import cors from 'koa2-cors' cosnt app = new Koa() app.use(cors({ maxAge: 5, credentials: true, // 发送cookie origin: 'http://localhost:8080', allowMethods: ['GET', 'POST', 'DELETE'], allowHeaders: ['Content-Type', 'Authorization', 'Accept'], exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'] })) app.use((ctx, next) => { ctx.body = 'hello' }) app.listen(3000)
前端用axios
,须要设置一下cookie
axios
axios.defaults.withCredentials = true // axios请求携带cookie
这样就OK了。跨域