前提・実現したいこと
今月より、pythonにてdjangoを用いてweb開発をしております、普段はROR使いの者です。
そこで、ajax通信を試みているのですが、post通信にてパラメータの受け取りができません。
構造としてはformを用いない単純なajaxをdjangoへ飛ばし、処理をするというものです。
しかし、django側でrequestに入った値を取り出すメソッドが効きません。
発生している問題・エラーメッセージ
上記
該当のソースコード
ソースコード /* javascript file */ token = '{{csrf_token}}'; const 関数_A = (sender) => { return new Promise((resolve, reject) => { try { $.ajax({ headers: { "X-CSRFToken": token }, url: '/read_sammary/', type: 'GET', data: {'json_data': sender}, // <= ここが問題 processData: false, contentType: false, dataType: 'json', timeout:10000, error: () => { resolve("処理") } }) .done(function(data) { resolve("処理"); }); } catch(err) { reject("処理") } }); } let sender = { param_a:"~", param_b:"~", param_c:"~", } /* view系.py */ from django.shortcuts import render, redirect from django.views.generic import TemplateView from django.http import HttpResponse from django.contrib import messages from django.http import JsonResponse from ***.models import * import requests import json class 名前(TemplateView): def post(self,requst,~,~): request_data = request.POST.get("json_data",None) print(request_data) // <= None が返される result = requsts.post('url',{'A':A,'B':B}) return ~
試したこと
pythonファイルにて取得方法を
request.body
や
request.POST.getlist("json_data")[0]
などしてみたり、javascriptファイルにてdataを
data:'json_data=' + sender,
にしてみたり、
data: { json_data:JSON.stringify(sender)}
などに変えてみましたが、django内でjson_dataというパラメータを見つけることができません。
海外サイトを中心に漁ってみましたが、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
OSX
django 2.1.2
python 3.7.0
es6, jQuery 3.4.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/03 06:57