Axios: النشر لا يرسل البيانات بشكل صحيح

تم إنشاؤها على ١٨ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: axios/axios

أهلا،
لدي تطبيق django حيث أريد إجراء POST بالنقر فوق <button> وهو ليس في <form>
المشكلة هي أن البيانات المرسلة لعرض وظيفة لا يتم إرسالها بشكل صحيح.

هنا هو كود أكسيوس:

 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')

لا يمكنني الوصول إلى بيانات post.POST لأن المفتاح عبارة عن قائمة ديكت بالكامل وقيمة فارغة:
<QueryDict: {u'{"obj_id":"182","content_type":"video","like":true}': [u'']}>

التعليق الأكثر فائدة

تكمن المشكلة في أن الكائنات يتم تسلسلها إلى JSON افتراضيًا بينما تحتاج إلى إرسال البيانات بتنسيق "application / x-www-form-urlencoded". أسهل حل هو استخدام مكتبة مثل qs :

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 });

انظر الى هذا التعليق لمزيد من التفاصيل.

أتمنى أن يساعدك هذا!

ال 3 كومينتر

تكمن المشكلة في أن الكائنات يتم تسلسلها إلى JSON افتراضيًا بينما تحتاج إلى إرسال البيانات بتنسيق "application / x-www-form-urlencoded". أسهل حل هو استخدام مكتبة مثل qs :

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 });

انظر الى هذا التعليق لمزيد من التفاصيل.

أتمنى أن يساعدك هذا!

هناك طريقة أخرى وهي وضع القيم في كائن FormData ونشرها

لقد كتبت محاور أرود مغلفة صغيرة تعمل بشكل جيد مع إعدادات Django الافتراضية> 1.8. أتمنى أن يساعد هذا شخص ما!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

achingbrain picture achingbrain  ·  3تعليقات

airtonix picture airtonix  ·  3تعليقات

c0debreaker picture c0debreaker  ·  3تعليقات

ghost picture ghost  ·  3تعليقات

jdpagley picture jdpagley  ·  3تعليقات