重点说明,版本是2.0.0,别的版本可能不一致。 暂时不知道3版本是不是有,地址在哪。
2版本地址: https://github.com/iview/iview-admin
使用iview框架时不小心看到了iview admin,然后下载下来了看看准备用用。
问题1
使用过程碰到的第一个问题是请求发送提示跨域无法访问。
解决的正确方法
在vue.config.js设置代理
// 设为false打包时不生成.map文件
productionSourceMap: false,
// 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串
devServer: {
proxy: 'http://localhost:8088/data'
}
在config/index.js文件中配置baseUrl
baseUrl: {
dev: '', //http:localhost:8088/data/
pro: 'https://produce.com'
},
去掉estlint检查错误 (不去掉也能跑,但是提醒各种语法报错不爽)在vue.config.js文件中
// 如果你不需要使用eslint,把lintOnSave设为false即可
lintOnSave: false,
当然,也可以在后台设置允许跨域。我用的springboot,上一篇有写这个问题。但是觉得前端能写的话也挺好的,尝试着设置了 一下,但是卡了很久。
第二个问题
使用登录方法进行登录时,debugger有参数进去,但是在浏览器发送请求部分没看到参数。
我尝试的是用get方法进行发送接收。代码如下:
export const login = ({ userName, password }) => {
const data = {
'userName': userName,
password
}
return axios.request({
url: 'cinema',
data,
method: 'get'
})
}
springboot映射部分代码:
@RestController
public class CinemaController {
@Autowired
private CinemaRespository cinemaRespository;
// 获取所有影院信息 get请求即可 注释 测试一下git
@GetMapping(value = "/cinema")
public List<Object> get_cinema(@RequestParam("userName") ){
return cinemaRespository.getcinema();
}
}
出现问题,会要求 请求有userName这个请求参数。各种百度也没有结果。debugger跟着也有参数,但是后面部分着实蒙蔽。。。
随后就尝试了一下使用post方法,发现竟然出现了参数。。
但是后端还是收不到,但是paload里面有参数。我写的后端接收参数部分是@RequestParam("userName"),这是对应表单提交的写法。有payload方式的,应该使用 @RequestBody Map param。改一下后端的接收方式即可拿到参数。关于这两种方法的介绍,可以百度,挺多好博客。
比如:https://www.cnblogs.com/yuluoxingkong/p/7605346.html等。