从javascript获取LaravelAPI中作为空数组的请求文件

从javascript获取LaravelAPI中作为空数组的请求文件,javascript,jquery,laravel-7,Javascript,Jquery,Laravel 7,这是我的javascript表单处理程序 我从表单中获取数据,并将其作为请求发送到API import { Store } from './http/requests.js'; $(document).ready(function () { $('#form_submit').submit(function (e) { e.preventDefault(); var formData = new FormData(this); Store(formData); }); }); js请求

这是我的javascript表单处理程序 我从表单中获取数据,并将其作为请求发送到API

import { Store } from './http/requests.js';

$(document).ready(function () {

$('#form_submit').submit(function (e) {
e.preventDefault();

var formData = new FormData(this);
Store(formData);
 });
});
js请求文件处理程序 在我使用定制post的地方,使用我提供的选项获取发送数据的函数

import { get, post } from '../helper.js';

let pageName = window.location.pathname;
pageName = pageName.slice(1, pageName.length - 5);

export const Store = (value) => {
switch (pageName) {
case 'add_car':
  post('user/create_car', value, true, 'multipart/form-data')
    .then((res) => {
      console.log(res);
      return res;
    })
    .catch((err) => console.log(err));
default:
  break;
  }
 };
然后是我使用fetch-get的helper文件,使用我从“requests.js”文件收到的选项发布,并在这里提供它

 import { Local as loc } from './localStorage.js';

 const API_URL = 'http://127.0.0.1:8000/api';

 // token if exists in localStorage
 const token = loc('get', 'token');

 // POST Request
 export const post = (
  url,
  formData,
  auth = false,
  type = 'application/json',
  providedToken = token,
   ) => {
   return fetch(`${API_URL}/${url}`, {
   method: 'POST',
   body: JSON.stringify(formData),
   headers: {
      'Content-Type': type,
      Authorization: auth ? `Bearer ${providedToken}` : null,
       },
      })
     .then((res) => res.json())
     .then((res) => {
     console.log(res);
     return res;
     })
     .catch((err) => console.log(err));
       };
最后是我尝试调试问题的Laravel API Cotroller

public function create_car(Request $request)
{
      
   return (response()->json([
        "files" => $_FILES,
        "all Request data" => $request,
    ]));
 }
从javascript向Laravel API发送数据时得到的响应


看来取回有问题。。。不管怎样,我刚刚用axios替换了fetch库,一切都运行得很好

下面是我在helper.js文件上所做的操作

 // POST Request
 export const post = (
 url,
 formData,
 auth = false,
 type = 'application/json',
 providedToken = token,
  ) => {
   return axios({
     method: 'POST',
     url: `${API_URL}/${url}`,
     data: formData,
     headers: {
  'Content-Type': type,
  Authorization: auth ? `Bearer ${providedToken}` : null,
  },
 })
    .then((res) => {
    console.log(res);
    return res.data;
   })
    .catch((err) => console.log(err.data));
};

该错误使您看起来像是在获取传统的表单数据,但您指定的代码是“application/json”?@JasonGoemaat no我调试了它,我确信我正在发送表单数据。。。谢谢Jasongoethmm。。。似乎是错误“在多部分/表单数据中缺少表单边界”认为它有“多部分/表单数据”并且找不到边界,但是您的帖子将类型设置为application/json“…(
type='application/json'
)。如果发送表单数据,这是为了什么?这是在函数参数中设置默认值的一种方式…我的函数是post(),它有自己的参数post(blah1,blah2,balh3)…这是函数参数的基本外观…如果要为参数ex:post设置默认值(blah1='something',blah2,blah3)…balh1有它的默认值,如果你在blah1中传递了一个vaue,它将由于传递的值而改变,如果你没有传递,默认值将自动工作
 // POST Request
 export const post = (
 url,
 formData,
 auth = false,
 type = 'application/json',
 providedToken = token,
  ) => {
   return axios({
     method: 'POST',
     url: `${API_URL}/${url}`,
     data: formData,
     headers: {
  'Content-Type': type,
  Authorization: auth ? `Bearer ${providedToken}` : null,
  },
 })
    .then((res) => {
    console.log(res);
    return res.data;
   })
    .catch((err) => console.log(err.data));
};