javascript - JavaScript fetch API 和 Python Flask 标头问题
问题描述
我正在尝试将 JSON 有效负载发布到运行在localhost:8080
.
Javascript
fetch(SERVER_URL, {
method: 'POST',
mode: 'no-cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({"hello": "world"})
});
我正在为我的服务器使用 Python Flask,我只想在服务器端打印接收到的 JSON。
蟒蛇烧瓶
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/route', methods = ['POST'])
def routeHandler():
data = request.get_json()
print(data)
return 'got it'
app.run(port = 8080)
打印语句被触发,但是data
是None
. 阅读 Flask API 文档后,我知道原因之一data
是None
请求中未设置正确的内容类型。为了检查这一点,我做了以下更改
data = request.get_json(force = True)
它绕过is_json()
检查并继续解析。这有效,表明我的标题有问题。但是,我确保我的fetch
请求与 API 文档一致,所以我不确定我哪里出错了。
我已经从 Postman 发送了相同的请求,即使没有force = True
. Postman 中生成的唯一标头是Content-Type: application/json
.
感谢您的任何帮助。
解决方案
我也有同样的挫败感,你的问题通过强制 get_json() 帮助解决了我的问题
我确实注意到我的实现和你的区别是:
from flask_cors import CORS
CORS(app)
推荐阅读
- vue.js - vuex - 未知的动作类型(无法调度我的动作)
- c# - How to set the index of a combobox that was dynamically added to a datagridview
- c# - 列表视图和组合框的 SelectedItem 颜色
- python - 如何检查一个字典的所有键是否存在于另一个字典中?
- excel - excel中数据量不均匀的插值
- sql - SQL循环表将记录插入新表,然后获取新ID并插入其他表
- javascript - 如何在不知道原始类型的情况下将缓冲区转换为字符串/数字/日期
- javascript - 反应导航抽屉多次更新
- components - 将查询从 index.js 移动到 GatsbyJS 中的组件后,无法读取未定义的属性 'allContentfulBlogPost'(使用 Contenful 和 GraphQL)
- mysql - 过滤 MySQL 中的每一列