使用Java MVC,结合前端Ajax代码,传输json串。
需求:通过前端的Ajax方法,向后台POST一个JSON串。
之前使用的是GET方法,但是需要传输的数据太长,GET已经无法满足需求,因此改成POST方法。
在这种情况下,403错误的原因十有八九是csrf。
GET为什么能成功呢?因为GET方法不需要CSRF,而POST必须需要它!
在jsp页面需要加上这样一行代码:
<input type = "hidden" name = "${_csrf.parameterName}" value="${_csrf.token}" />
ajax代码如下:
let csrf = $('input[name="_csrf"]').attr('value');//读取页面的csrf值
postAjax(host + '/createfile',csrf,JSON.stringify(data)