【vue】ajax后台map接收不到前台的值,请求参数以request payload传递解决办法
1、用vue post给后台传值时,发现@RequestParam Map<String, Object> params中params接收不到值控制台查看,发现参数是request payload方式传递的。查资料显示vue-resource中post请求时的一个坑,vue-resource中post发送的数据默认以request payload的形式。2、解...
·
1、用vue post给后台传值时,发现
@RequestParam Map<String, Object> params
中params接收不到值
控制台查看,发现参数是request payload方式传递的。
查资料显示
vue-resource中post请求时的一个坑,vue-resource中post发送的数据默认以request payload的形式。
2、解决办法
下载qs.js文件,下载地址点这里
(1)页面引用
<script src="${rc.contextPath}/statics/libs/qs.min.js"></script>
(2)
new Vue()之前,写入以下代码
Vue.use({
install(Vue) {
Object.defineProperty(Vue.prototype, "$qs", {
writable: false,
value: window.Qs
});
}
});
(3)ajax传递的值用 Qs.stringify()格式化
var params = {};
params['Id']=Id;
params = Qs.stringify(params);
(4)ajax调用时,设置请求头
$.ajax({
url : '../app/list',
beforeSend: function(request) { //使用beforeSend
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
},
dataType: 'json',
type : 'POST',
async: true,
data: params,
success : function(r) {
if ("200" == r.status) {
}
else {
} /// else
}, /// success
error: function (e) {
}
}); /// ajax
更多推荐
已为社区贡献1条内容
所有评论(0)