# 接口数据请求

# 常见的post请求方式

服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以根据接口的Header提示的信息来用不同的方式发送请求还是很重要的。

1、application/x-www-form-urlencoded

默认的POST数据提交方式,以键值对的方式提交数据。

2、multipart/form-data

也是一种常见的POST数据提交的方式。既可以上传键值对,也可以上传文件,一般都用来上传文件。

3、application/json

现在流行的请求方式,用来告诉服务端消息主体是序列化后的 JSON 字符串。

4、text/xml

一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。不常用。

# postman的使用

一般都需要在Headers中设置请求头

postman中Params和Body中的区别

Params传入参数会跟在地址后面,一般在GET请求传参中使用,不在POST请求中使用。

Body中传参不会跟在地址后面,是真正请求时发的参数。

# Body传参

一般post请求都在body中传参,我们根据contentType(发送信息至服务器时内容编码类型)类型来判断使用哪种方式传递参数。

body的四种类型

  • form-data:对应multipart/form-data,既可以上传键值对,也可以上传文件。
  • x-www-form-urlencoded:对应application/x-www-from-urlencoded,只能上传键值对。
  • raw:对应application/json可以上传任意格式的文本, 比如 json、text、xml、 html等。
  • binary:对应application/octet-stream只可以上传二进制数据,通常用来上传文件,一次只能上传一个文件。

# $.ajax()请求数据

# $.ajax() GET请求

$.ajax({
  url: `http://testurl.com/email-check/${email}`,
  type: "get",
  success: function (data) {
    console.log(data)
  },
  error: function (err) {
    console.log(err)
  }
})
$.ajax({
  url: `http://testurl.com/check?id=123&pwd=11111`,
  type: "get",
  success: function (data) {
    console.log(data)
  },
  error: function (err) {
    console.log(err)
  }
})

# $.ajax() POST请求

在post请求时,一般要使用 contentType 或者 headers 来告诉服务器请求方式。一般没有什么特殊的可以使用默认方式提交。

$.ajax({
  url: 'http://testurl.com/shop-api/user-auth',
  type: "post",
  dataType: "json", // 服务器返回的数据类型
  data: {
    email: '123@qq.com',
    password: 123456,
  },
  success: function (data) {
    console.log(data)
  },
  error: function (err) {
    console.log(err)
  }
})

当headers要求使用application/json请求时,我们可以通过 contentType 或者 headers 说明请求方式。

$.ajax({
  url: 'http://testurl.com/shop-api/user-auth',
  type: "post",
  dataType: "json",
  contentType: "application/json",
  // headers: {
  //   "content-type": "application/json; charset=utf-8"
  // },
  data: JSON.stringify({"email": that.email,"password": that.password}),
  success: function (data) {
    console.log(data)
  },
  error: function (err) {
    console.log(err)
  }
})

参考链接:

四种常见的 POST 提交数据方式 (opens new window)