Составные/формы-данные от Angular 12 до проблемы api Laravel 8

#angular #laravel #api #multipartform-data

Вопрос:

Я пытаюсь отправить некоторые данные полей и файл в серверную часть Laravel. Это работает, если я попробую api с почтальоном, но всегда показываю ошибку, когда отправляю его через Angular

 HttpErrorResponse {headers: HttpHeaders, status: 422, statusText: 'Unprocessable Entity', url: 'http://127.0.0.1:8000/api/works', ok: false, …}  error:  errors:  category: ['The category field is required.']  picture: ['The picture field is required.']  title: ['The title field is required.']  title_en: ['The title en field is required.']  title_uz: ['The title uz field is required.']  [[Prototype]]: Object  message: "The given data was invalid."  [[Prototype]]: Object  headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}  message: "Http failure response for http://127.0.0.1:8000/api/works: 422 Unprocessable Entity"  name: "HttpErrorResponse"  ok: false  status: 422  statusText: "Unprocessable Entity"  url: "http://127.0.0.1:8000/api/works"  [[Prototype]]: HttpResponseBase  

Похоже, что Ларавель не видел никаких обязательных полей.

Угловая функция:

 onSubmit() {   const formData = new FormData()   formData.append('title', this.worksForm.get('title')!.value)  formData.append('title_en', this.worksForm.get('title_en')!.value)  formData.append('title_uz', this.worksForm.get('title_uz')!.value)  formData.append('category', this.worksForm.get('category')!.value)  formData.append('description', this.worksForm.get('description')?.value)  formData.append('description_en', this.worksForm.get('description_en')?.value)  formData.append('description_uz', this.worksForm.get('description_uz')?.value)  formData.append('picture', this.worksForm.get('picture')?.value)    const headers = new HttpHeaders().append('Content-Type', ['multipart/form-data']);    this.http.post(`${environment.apiUrl}works`, formData,  {  headers: headers  }  ).subscribe(  (res) =gt; console.log(res),  (err) =gt; console.log(err)  )   }  

Магазин Laravel()

 public function store(Request $request)  {  $request-gt;validate([  'title' =gt; 'required',  'title_en' =gt; 'required',  'title_uz' =gt; 'required',  'category' =gt; 'required',  'picture' =gt; 'required'  ]);   if ($file = $request-gt;file('picture')) {  $name = $file-gt;getClientOriginalName();  $path = $request-gt;file('picture')-gt;storeAs('public/pictures', $name);  $request['picture'] = $name;   }  $input = $request-gt;all();  $input['picture'] = $name;  return Work::create($input);  }  

Я уже подумываю о том, чтобы попробовать какой-нибудь другой сервер… или в моем интерфейсе есть ошибки?

Я не нашел здесь никаких рабочих ответов на такую проблему.

Комментарии:

1. что вы видите на вкладке «Сеть разработчиков»?