前提
ajaxでデータを送信して、pythonで送信されたデータを取得してファイルに保存したいと考えています。
しかし、postで送信したデータがリクエストのフォームやボディにも存在しておらず、どこからデータを取得すればいいのかわからずに困っています。
実現したいこと
ajaxのdataオプションで指定し送信するJSONデータの受信
発生している問題・エラーメッセージ
ajaxのPostで送信されたデータがどこに格納されているのかわからず、データの取得が出来ていません。
vscodeでrequestのbodyやformにはデータが格納されていませんでした。
ただ、Chromeの検証機能のネットワークタブでajaxのPost送信のペイロードを確認すると、想定したデータが送信されていました。
ajaxで送信するデータはどこに格納されているのでしょうか?
該当のソースコード
JavaScript(ajaxの箇所の抜粋)
1 $.ajax({ 2 type: "POST", 3 url: `/save/draw-diagram`, 4 dataType: "json", 5 data: {"diagram" : msg.data} 6 }) 7 .done(function () { 8 console.log("success"); 9 }) 10 .fail(function () { 11 console.log("failed"); 12 });
補足:dataオプションのmsg.dataには文字列が格納されています。
python
1from fastapi import APIRouter, Request 2 3@router.post("/save/draw-diagram", response_class=HTMLResponse) 4def save_diagram(request: Request): 5 try: 6 data = request.body 7 print(data) 8 with open('./test.txt', mode='w') as f: 9 f.write(data)
補足:pythonはFastAPIを使用して、AjaxからのPost


