我有一个函数可以将带有数据的表单帖子发送到我的 Laravel 应用程序。
async handleDataSend(dsCommand, dsData) {
console.log(dsCommand);
console.log(dsData);
dat = {};
await (await fetch('{{ route('alpineDataSend') }}', {
method: 'POST',
body: JSON.stringify({
command: dsCommand,
data: dsData
}),
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
})).json();
return dat;
},
我的路线现在非常基本。
Route::post('/alpineDataSend', function (Request $request) {
dd($request->all());
}->name("alpineDataSend");
我使用浏览器中的检查器查看表单帖子中的表单数据。
{"command":"saveCountyStateCityData","data":{"country_key":"US","state_key":3922,"city_key":42752}}
问题是路由没有接收到数据。
[] // routes/web.php:487
我在ajax邮政编码中遗漏了什么吗?
我从另一篇文章中解决了这个问题。我需要将 json 标头添加到 ajax 代码中。
async handleDataSend(dsCommand, dsData) {
console.log(dsCommand);
console.log(dsData);
dat = {};
await (await fetch('{{ route('alpineDataSend') }}', {
method: 'POST',
body: JSON.stringify({
command: dsCommand,
data: dsData
}),
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
})).json();
return dat;
},
我现在收到了路线中的数据。
array:2 [ // routes/web.php:487
"command" => "saveCountyStateCityData"
"data" => array:3 [
"country_key" => "US"
"state_key" => 3920
"city_key" => 42671
]
]