我的Vue文件中有此代码
saveProfile() {
axios.patch('/api/pegawai/' + this.id, {
data: this.data
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
以及在我的laravel控制器中
public function update(Request $request, $id){
return $this->sendResponse('request retrieved');
}
public function sendResponse($message){
$response = [
'success' => true,
'message' => $message,
];
return response()->json($response, 200);
}
当我运行vue文件将数据传递到控制器时,它应该给我一个具有以下值的浏览器控制台的json响应
{
'success' : true,
'message' : 'request retrieved'
}
但当前,它通过浏览器控制台给我一个错误500 internal server error
。如果将axios.patch
替换为axios.put
,则会得到相同的结果。
--- 我尝试过的 ---
我已经尝试在与axios.post
相同的情况下进行axios.get
和axios.patch
的工作,并且两者都正常工作。发布和获取的控制器:
public function store(Request $request){
return $this->sendResponse('request retrieved');
}
public function index(){
return $this->sendResponse('request retrieved');
}
答案 0 :(得分:6)
实际上HTTP PUT
不能被html标准识别。尝试像这样做hack:
saveProfile() {
axios.post('/api/pegawai/' + this.id, {
data: this.data,
_method: 'patch'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}