Flask and Ajax Post HTTP/1.1" 400

太感谢https://stackoverflow.com/了,作者真的和牛,能解决问题

一下是转载的,mark一下,为了帮助更多的人。

If you are using the Flask-WTF CSRF protection you'll need to either exempt your view or include the CSRF token in your AJAX POST request too.

Exempting is done with a decorator:

@csrf.exempt可以不加

@csrf.exempt
@app.route("/json_submit", methods=["POST"])
def submit_handler():# a = request.get_json(force=True)app.logger.log("json_submit")return {}

To include the token with AJAX requests, interpolate the token into the page somewhere; in a <meta>header or in generated JavaScript, then set a X-CSRFToken header. When using jQuery, use the ajaxSetup hook.

这下面需要加:

Example using a meta tag (from the Flask-WTF CSRF documentation):

<meta name="csrf-token" content="{{ csrf_token() }}">

and in your JS code somewhere:

var csrftoken = $('meta[name=csrf-token]').attr('content')$.ajaxSetup({beforeSend: function(xhr, settings) {if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {xhr.setRequestHeader("X-CSRFToken", csrftoken)}}
})

Your handler doesn't actually post JSON data yet; it is still a regular url-encoded POST (the data will end up in request.form on the Flask side); you'd have to set the AJAX content type to application/json and use JSON.stringify() to actually submit JSON:

var request = $.ajax({url: "/json_submit",type: "POST",contentType: "application/json",data: JSON.stringify({id: id, known: is_known}),
})  .done( function (request) {
})

and now the data can be accessed as a Python structure with the request.get_json() method.

The dataType: "json", parameter to $.ajax is only needed when your view returns JSON (e.g. you used flask.json.jsonify() to produce a JSON response). It lets jQuery know how to process the response.

Flask and Ajax Post HTTP/1.1 400相关推荐

  1. 教你如何使用flask实现ajax数据入库

    本文分享自华为云社区<[首发]flask 实现ajax 数据入库,并掌握文件上传>,作者:梦想橡皮擦. flask 实现ajax 数据入库 在正式编写前需要了解一下如何在 python 函 ...

  2. flask 和 ajax 实例

    flask 和 ajax 实例 项目结构: test.py from flask import Flask, render_template, request app = Flask(__name__ ...

  3. Flask使用ajax进行前后端交互

    ajax前后端交互的使用已经非常普及了, 这种数据交互方式比表单提交数据带给用户的使用体验更好一些.同时,利用ajax交互时数据传输一般使用json,我们可以很方便的管理我们所需要的数据.只需要定义好 ...

  4. flask加ajax实现web微信

    引言 web微信 创建二维码 模拟登录 获取验证信息 展示用户信息 获取全部用户信息 总结 引言 本篇内容为通过flask加ajax完成对web微信的模拟登录,直到获取到完整信息, web微信 web ...

  5. flask的ajax的csrf代码

    1.ajax前端代码 Ajax本身是一门独立的技术,是实现前后端数据分离的一种措施,实现了局部请求, 所以ajax本身的代码不会因为后端框架变化而变化,变化的只有接口.以注册的用户 名重复作为校验. ...

  6. flask从服务器获取html页面,flask的ajax、获取服务器数据、放到前端页面、如果数据存在显示标签、如果不存在不显示标签...

    -------------------------------------第一部分----------------------------------------------------------- ...

  7. Flask与Ajax

    这篇短文使用jquery. Flask提供一个很简单的方法来处理Ajax请求--在视图函数中用request的属性is_xhr来判断,如果是true则是异步请求. Jquery的$.getJSON() ...

  8. flask和ajax,Flask flash和url_用于AJAX

    我目前陷入了一个相当"大"的问题,我会尽量做到清晰和简洁. 我正在用Python开发一个工具,使用Flask.它应该是一个内部网.我的想法是我有一个客户页面.有它的名字,许多其他信 ...

  9. flask和ajax通信详细步骤与完整代码

    ##################################下面是思路############################################ flask的api至少写两个函数 ...

最新文章

  1. linux查看cpu监控日志,Linux:日志,cpu,memory,mount,load等系统信息查看
  2. 求一个数字是几位数(简便)
  3. 应理解计算机专业的学科特点,职业高中计算机专业测验试题编写的策略初探.doc...
  4. 数据集:各地区化妆品销量、人口数量和人均收入
  5. mysql个人记账系统_个人记账系统
  6. word实现多级自动编号
  7. Spring Cloud 中文网
  8. 【Python学习笔记】3. Python3 基础语法
  9. 查找和排序方法归类----C和C++
  10. sql查询包含某个字符_MySQL DBA基本知识点梳理和查询优化
  11. 《叶圣陶语文教育论集》的阅读笔记和读后感3400字
  12. e1000网卡驱动初感受
  13. 华中科技大学计算机考研书籍,2020年华中科技大学计算机应用技术考研经验分享...
  14. 改善脑力的70条方法[翻译]
  15. (java桌面应用程序)淘金者游戏及玩法介绍
  16. cmath模块——复数域数学函数模块
  17. 树莓派入门(十) 树莓派系统升级
  18. MathType怎么把公式替换成图片
  19. john破解系统密码(windows和kali)
  20. ros卸载和安装,问题总结

热门文章

  1. virtio-blk简介
  2. php ucwords,WordPress博客程序中Platinum SEO Pack SEO插件设置图解介绍
  3. lua 的正则表达式之坑
  4. 形式参数内存在哪java_深入浅出Java中JVM内存管理
  5. 使用eBPFbcc提取内核网络流量信息(二)
  6. 在windows上解压linux文件夹,Win10如何使用命令行来解压缩文件?
  7. cocos网络通信php,cocos2d-x网络编程 连接php服务器笔记2
  8. SSL与TLS的区别
  9. GitHub 大热!也许会成为你心中的OCR开源工具NO1!
  10. 停车30分钟内不收费,程序员远程操控挪车,实现自动免费停车...