javascript - 如何修复 500(内部服务器错误)Vue js - Laravel(已编辑)

标签 javascript php laravel vue.js

我正在为大学做一个使用 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/

相关文章:

php - 数值统计表 PHP MYSQL

php - 导航面包屑未在 zend Framework 2 中呈现

php - Laravel - 1066 关系中的表/别名不是唯一的

javascript - 在我的 ASP CMS 中找不到此错误的原因

javascript - 导航栏的下拉列表

java - 如何使 PHP 更加 Javatized(又名强类型,更健壮)?

php - 如何在 dropzone 中设置 drop zone 区域的名称?

javascript - 尝试使用 Ajax 实现类似功能后出现内部服务器错误 500

javascript - 如何使用 json 中的 ionic 2 在 html 中显示此数据?

javascript - 更改 IE 11 默认警报