我用jQuery ajax post方法 用flask url_for 传值到后端
$.ajax({ url:"{{url_for(‘marketing.manager‘)}}", type:‘post‘, dataType:‘json‘, // data:params, data:{‘params‘:‘aResult‘}, success:function(data){ // console.log(data) console.log(‘success‘) },error:function(xhr){ // console.log(xhr) console.log(‘fail‘) } })
结果出问题了 报出错误 POST http://192.168.79.165:8015/marketing/manager 400 (BAD REQUEST)
----------------------------------------------------------------------------------------------------------------------------------------------------以上是问题
网上找的网址 https://segmentfault.com/q/1010000004019749/a-1020000004020013
发现问题确实是 后端用了CRSF 前端应该在ajax中加上一个关于crsf的东西
var csrf_token = "{{ csrf_token() }}"; $.ajax({ url:"{{url_for(‘marketing.manager‘)}}", beforeSend: function(xhr, settings) { if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrf_token); } }, type:‘post‘, dataType:‘json‘, // data:params, data:{‘params‘:‘aResult‘}, success:function(data){ // console.log(data) console.log(‘success‘) },error:function(xhr){ // console.log(xhr) console.log(‘fail‘) } })
附上解决代码链接:csrf protection
--------------------------------------------------------------------------------------------------------------------------------------------------------------解决
PS:不过后端一直踩坑 POST,GET不要随意大小写哦~都是泪
时间: 2024-11-05 09:22:48