【问题标题】:Why do I get a 405 response for a delete on live but not on local Laravel project?为什么我在 live 上删除但在本地 Laravel 项目上没有收到 405 响应?
【发布时间】:2020-05-16 05:21:42
【问题描述】:

对此非常不确定,我无法找到与我通过搜索获得的特定问题相关的任何结果。

我有一个 Laravel 项目,可以在其中发布 cmets,然后人们可以喜欢 cmets。点赞的DB表有点赞ID、用户ID和评论ID。

ViewComment.vue - removeLike 方法运行如果他们已经喜欢评论并点击喜欢按钮。

removeLike(){
  if(this.user){
    axios.delete('/api/likes/' + this.comment.likes[0].id).then((response) => {
    this.comment = response.data;
  }, (response) => {
    this.error = response;
  });
  }else{
    window.location.replace('/' + i18n.locale + '/login');
  }
}

api.php - 点赞路线

Route::bind('like', function($value) {
    return \App\Like::where('user_id', Auth::id() ?? 0 )->find($value);
});
Route::group(['middleware' => ['auth']], function($router) {
    Route::post('likes', 'LikesController@store');
    Route::delete('likes/{', 'LikesController@remove');
    Route::delete('likes/{like}', 'LikesController@remove');
});

LikesController.php

public function remove(Like $like)
{
  $like->delete();
}

错误信息:

当我在我的本地服务器上运行项目时,喜欢然后取消喜欢评论工作完全正常,没有错误,当它上线时,它却出现 405 错误,我查了一下,发现这意味着它与路由不兼容,但我不明白当它在本地工作时会出现这种情况,当然它也会出现在本地,并且删除在评论视图文件中并且作为 api.php 中的路由存在.如果这是由于托管方式存在问题,我该如何改进项目以与托管一起使用,或者如果在托管时有特定需求以使其正常工作,请告诉我。任何帮助将非常感激。

【问题讨论】:

  • Route::delete('likes/{', 是带有单个花括号的有效路由吗?我在文档中找不到它。尝试注释掉该行。
  • 现在我想起来了,您正在使用auth 中间件,所以它可能会失败,因为您缺少 CSRF 令牌。
  • 我认为它必须是有效的,因为它确实有效,因为当我在本地服务器上运行它时它确实有效,我如何找到 CSRF 令牌?
  • 不幸的是,评论似乎并不能解决问题

标签: php laravel


【解决方案1】:

听起来像您的 Apache 配置。可能AllowMethods GET POST OPTIONS 需要调整。

查看此处的文档,看看是否有帮助。

https://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html

【讨论】:

  • 这是在主机服务器上还是我需要将它添加到 public/web.config
  • 这是您的 Apache,因此与您的网站无关。它可以在您的机器上运行!
  • 对不起,我很困惑,您提供的链接将源文件提到为 .c 扩展名,但我只能在本地服务器上找到一个 .so 扩展名文件,而我没有认为是正确的,修改它如何影响生产构建?
  • 这应该在你的 apache conf 中定义
  • 我没有意识到你在 Azure 上。 Azure 禁用 PUT PATCH 和 DELETE。 feedback.azure.com/forums/169385-web-apps/suggestions/…{toggle_previous_statuses}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 2022-01-12
  • 2015-07-18
  • 2017-05-11
相关资源
最近更新 更多