HTTP403使用Ajax的POST方法向后台传输数据出现的问题的解决方案

在Java MVC环境中,使用Ajax的POST方法发送JSON数据时遇到403错误,主要原因是缺少CSRF保护。GET方法不受此限制。在jsp页面添加CSRF相关代码,并确保Ajax请求携带正确格式的数据。后台Controller类中,明确指定POST方法接收JSON数据,返回值也必须是JSON格式,否则可能导致语法错误或数据解析失败。
摘要由CSDN通过智能技术生成

使用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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值