从javascript获取LaravelAPI中作为空数组的请求文件
这是我的javascript表单处理程序 我从表单中获取数据,并将其作为请求发送到API从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请求
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));
};