رامین رضائی
4 سال پیش توسط رامین رضائی مطرح شد
4 پاسخ

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

سلام دوستان
من یک سایت با 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 ارسال نشده !

ممنون


ثبت پرسش جدید
رامین رضائی
تخصص : گرافیست سابق و برنامه نویس حال
@raminr77 4 سال پیش مطرح شد
0

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


رامین رضائی
تخصص : گرافیست سابق و برنامه نویس حال
@raminr77 4 سال پیش مطرح شد
0

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


رامین رضائی
تخصص : گرافیست سابق و برنامه نویس حال
@raminr77 4 سال پیش مطرح شد
0

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


Mahdi
@mghanaty 4 سال پیش مطرح شد
0

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

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


رامین رضائی
تخصص : گرافیست سابق و برنامه نویس حال
@raminr77 4 سال پیش مطرح شد
0

@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);
});

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام