前端jquery代码
window.open(exportOrderListUrl+"?param="+exportParam,'_parent');
window.open()方法默认是GET请求,需要拼接参数,这里 exportParam 是转换过的json字符串,作为参数没有问题
后台接收参数
public void orderListExportExcel(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value = "param", required = true)String param) throws Exception {
Map<String, Object> map = JSONObject.parseObject(param);
}
代码没有问题,但是浏览器请求时报400错误。
原因一般是因为请求时参数的编码格式错误,后台无法解析。
解决办法
在拼接参数时使用 encodeURI 处理参数的编码格式
window.open(exportOrderListUrl+"?param="+encodeURI(exportParam),'_parent');
保存之后刷新页面重新请求,问题解决。