我正在为大学做一个使用 Vuejs 和 laravel 的项目,当我将信息发送到 api 时我需要支持
我使用 axios 来发帖,但他们给了我一个错误:500(内部服务器错误)。但我看不到错误,我认为我的代码中一切都很好。
这是我的提交方法
submitFiles() {
for (let i = 0; i < this.files.length; i++) {
if (this.files[i].id) {
continue;
}
let formData = new FormData();
formData.append("file", this.files[i]);
axios
.post("/files/upload-file", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.then(
function(data) {
this.files[i].id = data["data"]["id"];
this.files.splice(i, 1, this.files[i]);
console.log("success");
}.bind(this)
)
.catch(function(data) {
console.log("error");
});
}
}
}
这是我的路线帖子(已编辑)
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::group(['middleware' => 'auth'], function () {
Route::get('files', 'FileEntriesController@index');
});
Route::get('files/create', 'FileEntriesController@create');
Route::post('files/upload-file', 'FileEntriesController@uploadFile');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('{path}','HomeController@index')->where('path', '([A-z\d-\/_.]+)?');
这是我的 Controller
public function uploadFile(Request $request) {
$file = Input::file('file');
$filename = $file->getClientOriginalName();
$path = hash( 'sha256', time());
if(Storage::disk('uploads')->put($path.'/'.$filename, File::get($file))) {
// $input['user_id'] = $user_id;
$input['filename'] = $filename;
$input['mime'] = $file->getClientMimeType();
$input['path'] = $path;
$input['size'] = $file->getClientSize();
$file = FileEntry::create($input);
return response()->json([
'success' => true,
'id' => $file->id
], 200);
}
return response()->json([
'success' => false
], 500);
}
我希望将信息传递到数据库,但它显示错误 405(方法不允许)
已编辑
在网络部分的 ispect 选项中我可以找到这个:
{消息:“未找到类‘App\Http\Controllers\Input’”,…} 异常:“Symfony\Component\Debug\Exception\FatalThrowableError” 文件:“C:\laragon\www\vue-laravel-app\app\Http\Controllers\FileEntriesController.php” 线路:11 消息:“找不到类‘App\Http\Controllers\Input’”
最佳答案
web.php
中的所有 POST/PUT/PATCH 请求均受到 CSRF 保护
的保护。
您似乎没有在请求 header 中传递任何 token ,或者可能是在正文中?如果不是,则会导致Method Not allowed
错误。
最好使用 API 路由,因为 csrf-protection
在它们上被禁用。
关于javascript - 如何修复 500(内部服务器错误)Vue js - Laravel(已编辑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828926/