uni.request 网络请求

*爱你&永不变心* 提交于 2020-03-17 06:28:09

uni.request

OBJECT常用参数说明详细参数请戳

参数名 说明
url 是写api地址的
data 是用来传值的(看下面详情~)
header 是写请求头信息的
method 访问接口的方式(看下面详情~)
succes 访问接口成功之后就会调用success参数为res(看下面详情~)

method 有效值
必须大写,有效值在不同平台差异说明不同。

GET
POST
PUT        不支持支付宝小程序
DELETE     不支持支付宝小程序、头条小程序
CONNECT    不支持支付宝小程序、百度小程序、头条小程序
HEAD	   不支持支付宝小程序、头条小程序
OPTIONS    不支持支付宝小程序、头条小程序
TRACE	   不支持支付宝小程序、百度小程序、头条小程序

success 返回参数说明

参数 类型 说明
data Object/String/ArrayBuffer 开发者服务器返回的数据
statusCode Number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header

data 数据说明

对于 GET 方法,会将数据 转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18

  • 对于 POST 方法且 header['content-type']application/json 的数据,会进行 JSON 序列化。
  • 对于 POST 方法且 header['content-type']application/x-www-form-urlencoded 的数据,会将数据转换为 query string。

剩下的内容参考 官方文档

现在说一下uni.request请求渲染页面

uni.request 其实就和ajax差不多

1、打开一个空白的组件页面,把下面的复制进去( 把不需要的删掉就可以 )

uni.request({
	url: this.$host+'/books/getImage',
	method: 'POST',
	header:{
		'Content-Type' : 'application/json',
		token : uni.getStorageSync("TOKEN")
	},
	data: {
		phone : this.phone
	},
	success: res => {
		console.log(res);
	},
	fail: () => {},
	complete: () => {}
});

2、准备服务器接口数据 http://www.intmote.com/test.json,将代码写在getList()函数里面,并且把函数 写在methods的方法里面

 methods: {  
   getList() {
	    uni.request({
	      url: 'http://www.intmote.com/test.json', 
	        success: (res) => {
	            console.log(res.data);
	            this.text = 'request success';
	        }
	    });
   }
}

3、载入页面的时候加载调用请求函数请求api

onLoad() {
	this.getList();
}

4、成功调用,在控制台打印 console.log(res.data);
在这里插入图片描述
5、完整代码
v-for是向页面渲染数组格式的数据的时候用的

<template>
    <view>   
		<view v-for="(item,index) in itemList"  :key="index">
			<view>{{index}} - {{item.name}}</view>
			 <view>{{index}} - {{item.nick}}</view>
		</view>
    </view>
</template>
<script>
export default {
	data() {
		return {  
			itemList: []
		}
	},
	onLoad() {
		 this.getList();
   },
   methods: {
	 getList() {
		uni.request({
			url: 'http://www.intmote.com/test.json', 
			method:'GET',
			data:{},
			success: (res) => {
				console.log(res.data);
				this.itemList =res.data.first;
			}
		});
	 }
  }
}
</script>

for循环是接收数组的时候用的

(以前的代码)

methods: {  
	getNews(){
		var _thas = this;
		uni.request({		
			url: 'http://news-at.zhihu.com/api/4/news/latest',
			method: 'GET',
			data: {},
			success: res => {
				 console.log(res.data);
				for(var i=0;i<res.data.stories.length;i++){
					_thas.news.push(res.data.stories[i])
				}
			},
		});
	},
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!