解决ios
在使用easy-mock模拟post提交数据的状况中,咱们有时须要对提交的数据进行简单逻辑处理。
查阅文档发现能够使用"_req.body.keyname"来获取相应的值,可是在对演示项目进行预览操做时发现,容易出现undefined或Bad Request值。git
文档中提到“当 post 请求以 x-www-form-urlencoded 方式提交时,咱们能够拿到请求的参数对象”,通过屡次尝试发现按照参考文档,在header中配置content-type项,目前没法正常操做。github
①接口配置->更新npm
{ code: function({ _req }) { if (_req.body.userName === 'admin' && _req.body.password === '123456') { return 200 } else { return 500 } }, data: function({ _req }) { if (_req.body.userName === 'admin' && _req.body.password === '123456') { return { name: "admin", access: ["admin"], user_id: "2", token: "admin", avatar: "https: //avatars0.githubusercontent.com/u/20942571?s=460&v=4" } } else { return "登陆帐号不对" + _req.body.userName } } }
②请求接口->post参数请求axios
{ "userName":"admin", "password":"123456" }
③iView-admin中axios设置post参数为@ResponseBody(从请求体中取参数)segmentfault
解决以下:src->libs->axios.js中 引入qs (使用qs 库对数据进行转换)api
. . // 引入qs,若无,先npm install qs import qs from 'qs' . . // 修改request函数 request (options) { . . if(options.data) options.data=qs.stringify(options.data) . . }
这样,请求体以Form Data形式post提交ide
备注: easy-mock上登陆请求api最好不以login命名,没法返回data。(暂时不知原因)函数