解读小程序POST请求的两种方式

对于 POST 方法且 header['content-type']application/json的数据

在这种情况下,数据会进行序列化

要求后端用@RequestBody来标识请求参数

// 用户注册/登录
uni.request({
	url: common.serverUrl + '/user/weChat/login',
	method: "POST",
	data: {
		userName: userName,
		password: password
	},
	header: {
		// 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会进行 JSON 序列化
		// 要求后端用@RequestBody来标识请求参数
		'content-type': 'application/json'
	},
	success: (res) => {
		if (res.data.code == 200) {
			// 获取用户信息
			me.userInfo = res.data.data;
			// 将用户信息保存到全局缓存中
			uni.setStorageSync("globalUserInfo", me.userInfo);
			// 登录完成后,通过切换tab的api
			uni.switchTab({
				url: '../mine/mine'
			})
		}
	}
});

对于 POST 方法且 header['content-type']application/x-www-form-urlencoded 的数据

会将数据转换为 query string

后端只需填写对应参数名即可

// 获取热门电影列表
uni.request({
	url: common.serverUrl + '/movie/movieHot/searchMovie',
	// 请求参数
	data: {
		keyword: keyword,
		pageNumber: pageNumber,
		pageSize: pageSize
	},
	header: {
		// 会将数据转换为 query string
		'content-type': 'application/x-www-form-urlencoded'
	},
	method: "POST",
	success: (res) => {
		if (res.data.code == 200) {
			let tempMovieList = res.data.data.rows;
			// 如果下拉操作有分页数据时,进行数据追加
			me.hotMovieList = me.hotMovieList.concat(tempMovieList)
			// 当前分页总页数
			me.pages = res.data.data.pages;
			// 当前页数
			me.pageNumber = pageNumber
		}
	},
	complete: () => {
		// 隐藏 loading 提示框 
		uni.hideLoading()
	}
});

你可能感兴趣的:(uni-app,前端之旅,Java进化之旅)