DjangoでJavaScriptを使用してPOST送信を行っています。
Viewの関数から返ってきたresponseTextをテンプレート上に表示したいのですが、responseTextを取得する方法がわかりません。
Javascript
1<script> 2 $(document).ready(function() { 3 $('.btn').on('click', function() { 4 var id = $(this).attr('id'); 5 var result = send_command(id); 6 // ここでresultの中からresponseTextを取得したいです 7 }); 8 }); 9 10 function send_command(mode){ 11 return $.post('/path/to/post/', 12 {"mode": mode} 13 ) 14 }; 15</script>
上記のvar resultの中は以下のようになっています。
{…} abort: function abort() always: function always() catch: function catch() done: function add() fail: function add() getAllResponseHeaders: function getAllResponseHeaders() getResponseHeader: function getResponseHeader() overrideMimeType: function overrideMimeType() pipe: function pipe() progress: function add() promise: function promise() readyState: 4 responseJSON: 200 responseText: "200" setRequestHeader: function setRequestHeader() state: function state() status: 200 statusCode: function statusCode() statusText: "OK" then: function then() <prototype>: Object { … }
最初のJavaScriptでPOST送信しているDjago側のビューは以下のようになっています。
Python
1class PostView(generic.View): 2 def post(self, request, *args, **kwargs): 3 result = hogehoge() 4 # このresultには"200"という文字列が入っています。 5 return HttpResponse( 6 result, 7 content_type="application/json; charset=UTF-8" 8 )
また、上記のreturnの一つ目の引数において、例えば
{'result': 'this is a result'}
のようなJson形式のものや、"result"
のような文字列を指定すると、var resultが定義されません。
これはなぜなのでしょうか?
JavaScriptの中で
result.responseText
としてみたのですが、Undiefinedになってしまいます。
responseTextやresponseJSONを取得するにはどのようにすれば良いのでしょうか。
ご教示いただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/26 01:31
2019/09/26 01:34
2019/09/26 01:36
2019/09/26 01:38
2019/09/26 01:45