【发布时间】:2020-01-08 09:26:29
【问题描述】:
我通过 Ajax 向控制器发送 JSONArray。它正在返回
“500 内部服务器错误”
在控制台中检查 URL 的响应后,我发现我的数组未定义:
消息-未定义变量:myData
异常-ErrorException
文件-C:\xampp\htdocs\EDO_Roster\app\Http\Controllers\EventController.php
这是我的 Ajax 代码:
var myJson = JSON.stringify(myData);
var button = document.getElementById("submit");
button.addEventListener("click", function(event){
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "POST",
url: "{{route('postEvent' , 'myJson')}}",
data: {myData: myJson},
contentType: "application/json; charset=utf-8",
dataType: "json",
}).done( function(data){
console.log('Ajax was Successful!');
console.log(data);
}).fail(function(){
console.log('Ajax Failed');
});
});
函数路径:
Route::post('randomPost', 'EventController@postEvent')->name('postEvent');
这是我的控制器代码
public function postEvent(Request $request)
{
$events = DB::table('auto_events')
->insert(array(
'edo_id' => $myData->edo_id,
'strat' => $myData->start,
)
);
return response($events, 200);
}
我已经尝试过堆栈溢出时提供的几种解决方案,例如更改 Ajax 调用,多次检查我的路由。
【问题讨论】:
-
您正在尝试访问未定义的函数中的 $myData,您必须从 $request 获取变量,即 $request->input('edo_id');