【问题标题】:Laravel, two api PUT actions, one works other doesn'tLaravel,两个 api PUT 动作,一个有效,另一个无效
【发布时间】:2019-08-28 08:00:46
【问题描述】:

我从 javascript 发送 API PUT 请求,在一种情况下有效,在另一种情况下无效。

Request URL: http://project.local/api/contestant
Request Method: PUT
404
Request URL: http://project.local/api/user
Request Method: PUT
200
Route::put('contestant', 'ApiContestantController@store');
Route::put('user', 'ApiUserController@store');

我检查了几次routes/api.php,javascript代码类似,不知道接下来该检查什么。

编辑: 这适用于另一个环境。相同的代码。类似的配置(数据库凭据不同),可能还有文件权限。

【问题讨论】:

  • 我猜你ApiContestantController中的namespace是错误的,因此找不到路由/文件。
  • 命名空间 App\Http\Controllers;在这两个文件中。它们在同一个文件夹中。从另一个复制一个,只替换一些变量名。
  • 404 表示未找到,因此请确保不要拼错任何类名或任何内容。
  • 你清除你的路由缓存了吗? php artisan route:clear
  • 是的 - 仍然是 404。也没有拼写错误。

标签: laravel rest laravel-5 routing put


【解决方案1】:

我猜这是一个简单的拼写错误。确保ApiContestantController.php 文件在app/http/controllers 目录中并且第一行包含namespace App\Http\Controllers;,注意App 的大写A 并且类名必须是ApiContestantController 与文件名相同(检查关于大写字母的文件和类名,他们总是让我失望)。

如果您检查了所有这些但仍然返回错误,请检查您的 csrf 令牌是否附加在该请求中。为了确定它是否与csrf token相关,暂时将方法更改为get并返回一个简单的字符串并将其登录到控制台。

通知我在 cmets 中的结果。

【讨论】:

    猜你喜欢
    • 2018-08-19
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多