Я пытаюсь отправить полезную нагрузку JSON на сервер Flask, работающий на 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
. После прочтения документации по API Flask я знаю, что одна из причин, по которой data
может быть None
, заключается в том, что в запросе не указан правильный тип содержимого. Чтобы проверить это, я сделал следующее изменение
data = request.get_json(force = True)
, который обходит проверку is_json()
и продолжает анализ. Это сработало, предполагая, что что-то не так с моими заголовками. Тем не менее, я убедился, что мой запрос fetch
соответствует документации API, поэтому я не уверен, в чем проблема.
Я отправил тот же запрос от Почтальона, и он успешно получен на сервере даже без force = True
. Единственный заголовок, сгенерированный в Почтальоне, является Content-Type: application/json
.
Спасибо за любую помощь.