
実現したいこと
jqueryのajax通信でリストを含むformの値をflaskにPOSTしてflask側でそのリスト値を受け取りたい
前提
「実現したいこと」に記載したとおり、以下のようにhtm側に実装したscriptにjqueryのajaxを書いております。
ただし、リストと記載しましたが、現状、リストでできていないだけで、formのひとまとまりの値をflaskに送ることができればHTTPメソッドやリスト・オブジェクトなどの型は何でも良いです。
$.ajax({ type: "POST", url: "/call_from_ajax", dataType: 'json', data: { fileSpecNo: Math.random().toString(32).substring(2), a: $('#a').val(), //formのinputから取得した単一値 b: $('#b').val(), //formのinputから取得した単一値 detail1: detail1List, }, })
dataに設定したaとbだけであれば、flask側でrequest.form['a']といったようにPOSTした値を受け取れるのですが、上のコードのようにdetail1を付加すると、特段、該当箇所ではエラーはでないのですが、この値を引数に取る関数で以下のエラーが発生します。これはdetail1を除くと発生しなくなるのでdetail1を request.form['detail1'] で取得できていないことによるものだと思われますが、なぜかこのエラーが発生する前にwarningでrequest.form['detail1']の値をログ出力しようとしても ログが出力できていませんでした。
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/output_38q3dfg2jq.pdf' [2023-02-02 08:20:11,637] WARNING in app: file_path: ./tmp/output_l8m0vlef4h.pdf [2023-02-02 08:20:11,637] WARNING in app: filename: output_l8m0vlef4h.pdf post_filename: output_l8m0vlef4h.pdf [2023-02-02 08:20:11,640] INFO in _internal: 192.168.0.152 - - [02/Feb/2023 08:20:11] "POST /call_from_ajax HTTP/1.1" 500 - Traceback (most recent call last): File "[PATH]/app.py", line 2548, in __call__ return self.wsgi_app(environ, start_response) File "[PATH]/app.py", line 2528, in wsgi_app response = self.handle_exception(e) File "[PATH]/app.py", line 2525, in wsgi_app response = self.full_dispatch_request() File "[PATH]/app.py", line 1822, in full_dispatch_request rv = self.handle_user_exception(e) File "[PATH]/app.py", line 1820, in full_dispatch_request rv = self.dispatch_request() File "[PATH]/app.py", line 1796, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "[PATH]/app.py", line 164, in callfromajax with open(f"/tmp/{filename}", "rb") as pdf_file: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/output_l8m0vlef4h.pdf'
ちなみに、html側でdetail1の値と型をconsole.logで出力してみると、以下のようになります。
detail1List: 2,3,4,5, type: object
javascriptド素人で申し訳ないのですが、
①そもそもこれはリストではないとうことでしょうか。
②a, bは単一値で、detail1はformの一連のまとまりとしてflask側に値を送りたいのですが、何か良い方法は無いでしょうか。
恐れ入りますが海外の情報もいろいろとあたりましたがこの3日間特に進展がなく、ご相談させていただきました。
大変恐れ入りますが、ヒントだけでもいただけますと幸いです。
また、不足している情報があればご教示ください。
どうぞよろしくお願い致します。





回答1件
あなたの回答
tips
プレビュー