javascript python プログラミング

【解決した】JSのfetchでPOSTのパラメーターが送信できない

投稿日:

こんにちは、mabuiです。
プログラミングしていると予期しないところでハマって時間を浪費することあるあるですよね。
今自分もJavaScriptのfetchメソッドでPOSTリクエストを出す際にパラメーターを送信できなくて絶賛ハマり中です、、、
 

POSTを受け取るapi

Pythonのflaskでapiを作っています。

 
パラメーターが渡ればrequest.formに値が入ってくるはずですが、、、
 

Content-type : application/jsonで送信

JS側でfetchを使ってリクエストしてみます。

 
Python側のprint(request.form)の出力は、
ImmutableMultiDict([])
で、辞書型の中に空の配列が入っていますね、ううむ、、、
 

書きながら調べてたら

requestのプロパティにrequest.jsonというものがあることを発見!
これをprint(request.json)してみると、、

{'page': 1}
パラメーターが渡っていました!!!
なるほど〜json形式で渡ってきたパラメーターはこうやって受け取るんだな〜〜!
本当に今リアルタイムでブログ書いてたら解決しました!
まさにラバーダッキング的な解決方法。ラバーダッキングとは1人でもやもや悩んでいる時に同僚やおもちゃのアヒルに話していると、頭の中で問題が整理され、解決法が導かれるというテクニックで、心理負荷も軽減できておすすめです。
でもこれ前に同じような問題で悩んだ気がするな、、、
 
ちなみにPythonではdirメソッドを使うと、オブジェクトが保持しているプロパティやメソッドを一覧で確認できます。

こんな感じでダーっと出てきます。

動的言語って便利ですけど、すぐにオブジェクトの持つプロパティやメソッドを確認できないのが手間だな〜と感じます。

 
凄く茶番な記事になってしまいすいません!
問題も解決したので、心置きなく飲み行ってきます〜〜!
 

-javascript, python, プログラミング
-, ,

Copyright© mabui.org , 2018 All Rights Reserved Powered by STINGER.