こんにちは、
<form>
ない<button>
をクリックしてPOSTを作成したいdjangoアプリケーションがあります
問題は、ビュー機能に送信されたデータが正しく送信されていないことです。
これがaxiosコードです:
axios({
method: 'post',
url: '/url/to/view'
data: {
obj_id: objectid,
content_type: contenttype,
like: !is_liked
},
xsrfCookieName: 'csrftoken',
xsrfHeaderName: 'X-CSRFToken',
headers: {'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
}).then(function (response) {
console.log(response);
});
そしてここにコードを表示します:
def my_view(request):
print request.POST
return HttpResponse('XX')
キーがdict全体であり、値が空のリストであるため、request.POSTデータにアクセスできません。
<QueryDict: {u'{"obj_id":"182","content_type":"video","like":true}': [u'']}>
別の方法は、値をFormDataオブジェクトに入れて投稿することです
デフォルトのDjango> 1.8設定で正常に動作する小さなラッパーaroudaxiosを作成しました。 これが誰かに役立つことを願っています!
最も参考になるコメント
問題は、「application / x-www-form-urlencoded」形式でデータを送信する必要があるときに、オブジェクトがデフォルトでJSONにシリアル化されることです。 最も簡単な解決策は、 qsのようなライブラリを使用することです。
詳細については、このコメントを参照してください。
お役に立てれば!