现在我们通过webpack+vue-cli搭建起了一个vue项目的框架,如果我们需要在vue组件中使用axios向后台获取数据应该怎么办呢?
通常情况下,我们搭建好的项目目录应该是这样子的
首先需要安装axios,这个会npm的都知道
下一步,在mainjs中引入axios
import axios from "axios";
与很多第三方模块不同的是,axios不能使用use方法,转而应该进行如下 *** 作
Vueprototype$axios = axios;
接着,我们就可以在Appvue中使用axios了
created:function(){ this$axiosget("/seller",{"id":123})then(res=>{ consolelog(resdata); }); }
java和js是不同的语言,两者的数组是不一样的,不能直接赋值,但字符串是不同语言之间通用的。
所以可以先把二维数组转换成字符串,然后使用隐藏域 name和后台定义的变量名一致,在后台执行jsp的时候会赋值到这个隐藏域,js中使用documentgetElementById来取值
或者用el ${}来取,但是这种取法一定不能写在外部js文件中,只能写在jsp中
既然说没有真正获取到值,那我就试着说使用数组的push函数插入数据。所以在回调函数之前先定义一个变量,用来接收后端传递回来的数据。然后再把这个变量添加到数组里面,结果这样数组真的能获取到了值了,数据成功在页面渲染了。
js接收数据修改后的代码:
虽然具体不清楚bug的原因,但还算是解决了,希望也能帮到你!
查看JSON数据格式
获取到的JSON是对象中包含数组
返回查看发请求的代码
这是改之前的错误代码
mounted() {
thisaxiosget(`/ajax/cinemaList`)then(
response => {
// consolelog(responsedata)
var cinemas = responsedata
// consolelog(cinemas)
if (cinemas) {
thiscinemas = responsedata // 此处的thiscinemas是一个对象!!
thisisLoading = false
}
consolelog(thiscinemas)
}
)
}
修改后
mounted() {
thisaxiosget(`/ajax/cinemaList`)then(
response => {
// consolelog(responsedata);
var cinemas = responsedata
// consolelog(cinemas)
if (cinemas) {
thiscinemas = responsedatacinemas // 修改后
thisisLoading = false
consolelog(thiscinemas)
好了,解决了,大家不要像我一样这么傻啊。。。
都是。axiosget请求方式,传递给后台的参数都是字符串下形式,无法传递json对象或数组对象等。数据是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
整个的流程是在组件的created中提交dispatch,然后通过action调用一个封装好的axios然后再触发mutation来提交状态改变state中的数据,然后在组件的计算属性中获取state的数据并渲染在页面上
以上就是关于Vue项目中使用axios获取网页数据问题全部的内容,包括:Vue项目中使用axios获取网页数据问题、js中如何获取后台传来的二维数组、axios为什么不能将流式数据动态的展示在页面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)