آفلاین
user-avatar

ارور 422 در لاراول و عدم دریافت formData

7 ماه پیش
توسط رامین رضائی آپدیت شد
آفلاین
user-avatar
رامین رضائی ( 19551 تجربه )
7 ماه پیش
تخصص : گرافیست و برنامه نویس !

سلام دوستان
من یک سایت با react نوشتم و میخواهم اطلاعات یک فرم ( شامل اطلاعات ساده و سه عدد عکس ) را برای سرور ارسال و آپلود کنم.
از اونجا که برای آپلود باید با formData کار کرد این درخواست رو با فرم دیتا ارسال میکنم اما ...
اعتبار سنجی انجام نمیشه و درخواست من 422 میگیره ممنون میشم اگر کمکم کنید.

درخواست سمت فرانت و ری اکت :

var fd = new FormData();
    fd.append('f_name', this.state.f_name);
    fd.append('l_name', this.state.l_name);

fetch(REGISTER_URL, {
        method: 'POST',
        headers: {
            "Accept": "application/json",
            "Content-Type": "application/json"
        },
        timeout: 5000,
        body: fd
      })
      .then(response => {
          return response.json();
      })
      .then(response => { ... })
      .catch(error => {
        console.log(error);
      });

سمت لاراول و سرور :

$this->validate($request, [
            'f_name' => 'required|min:2',
            'l_name' => 'required|min:2',
        ]);

نکته : جوابی که از سرور میگیرم بهم میگه فیلد f_name ارسال نشده !

ممنون

بهترین پاسخ انتخاب شده توسط رامین رضائی
آفلاین
user-avatar
رامین رضائی
7 ماه پیش

دوستان من از کتابخانه axios استفاده کردم و مشکلم کامل حل شد.

آفلاین
user-avatar
رامین رضائی ( 19551 تجربه )
7 ماه پیش
تخصص : گرافیست و برنامه نویس !

دوستان در نظر داشته باشید state های من مقدار دارند و خالی نیستند.
همچنین فکر نکنم مشکل مربوط به هدر هم باشه

آفلاین
user-avatar
رامین رضائی ( 19551 تجربه )
7 ماه پیش
تخصص : گرافیست و برنامه نویس !

دوستان من از کتابخانه axios استفاده کردم و مشکلم کامل حل شد.

آفلاین
user-avatar
Mahdi ( 70 تجربه )
7 ماه پیش

سلام آقای رضایی

ممکن هست کدی که برای هندل ارور 422 در Axios نوشتی رو بفرستین؟

آفلاین
user-avatar
رامین رضائی ( 19551 تجربه )
7 ماه پیش
تخصص : گرافیست و برنامه نویس !

@mghanaty
سلام ببخشید دیر جوابتون رو دادم.

const fd = new FormData();
fd.append("profile_pic", this.state.profile_pic);

axios
.post(REGISTER_URL, fd, {
    onUploadProgress: e => {
    this.setState({
        // for show persent progress  
        progress: Math.round((e.loaded / e.total) * 100) + " %"
    });
    }
})
.then(response => {
    console.log(response)
})
.catch(error => {
    console.log(error.response.data);
    console.log(error.response.status);
    console.log(error.response.headers);
});
برای ارسال پاسخ باید وارد سایت شوید