Rayden Storm نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 احاول ارسال form data عبر axios لكن يحدث معي هذا الخطأ var body = { userName: 'usertest', userEmail: 'usertest@gmail.com' } axios({ method: 'post', url: '/addUser', data: bodyة headers: { "Content-Type": "multipart/form-data" }, }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); Error in posting multipart/form-data. Content-Type header is missing boundary 1 اقتباس
1 أحمد حبنكة نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 إن مكتبة axios حين تمرر لها body فإنها تفترض أنك تريد أن تعمل POST لـJSON وهذا ما ترسله للمخدم، إذا أردت إرسال multipart/form-data يجب عليك إنشاء FormData object وملؤه بالحقول هكذا: // تعريف متغير ليستقبل formData const payload = new FormData(); // إعطائه القيم payload.append('userName', 'usertest'); payload.append('userEmail', 'usertest@gmail.com'); payload.append('file',fileObject) // if you have <input type="file"/> you can get fileObject from inputElement.files[0] if input is not multiple or inputElement.files if it is multiple axios({ method: 'post', url: '/addUser', data: payload }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); لاحظ أننا أزلنا Content-Type header ولا داعي له بل من الخطأ تمريره ﻷن axios عند تمرير FormData فإنها تفهم أن Content-Type يجب أن يكون multipart. طبعاً أنت تعلم أن multipart يستخدم فقط إن كان هناك file upload أما إذا كانت جميع حقولك عادية حينها لا نمرر FormData object بل نمرر URLSearchParams object بالشكل التالي: axios({ method: 'post', url: '/addUser', data: new URLSearchParams(body) // body is a regular javascript object }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); حينها تمرر axios الـContent-Type header بقيمة application/x-www-form-urlencoded أخيراً إن كنت تريد تمرير JSON للسيرفر حينها تقوم باﻵتي: axios({ method: 'post', url: '/addUser', data: body // body is a regular javascript object }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); حينها يكون Content-Type يساوي application/json اقتباس
0 Mohammed Saber6 نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 مرحباً بك يجب تحويل ال payload ل formData قبل إرساله ليكون هكذا // تعريف متغير ليستقبل formData var payload = new FormData(); // إعطائه القيم payload.append('userName', 'usertest'); payload.append('userEmail', 'usertest@gmail.com'); axios({ method: 'post', url: '/addUser', data: payload, headers: { "Content-Type": "multipart/form-data" }, }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); اقتباس
السؤال
Rayden Storm
احاول ارسال form data عبر axios لكن يحدث معي هذا الخطأ
Error in posting multipart/form-data. Content-Type header is missing boundary
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.