【问题标题】:Laravel webhook route returning 405 error - ideas?Laravel webhook 路由返回 405 错误 - 想法?
【发布时间】:2020-01-11 13:34:23
【问题描述】:

我正在为我的 laravel 5.3 网站设置 webhook,以响应来自 mailchimp 的事件。

我正在 MailChimp 中设置回调,但 Mailchimp 一直显示 405 错误。

这是我网站上的内容:

对于verifycsrftoken中间件:

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */


    protected $except = [
        'stripe/*',
        'zoom/*',
        'mailchimp/*',

    ];
}

顺便说一句,stripe webhook 工作得很好......

在 web.php 中

// zoom webhooks
Route::post(
    'mailchimp/webhook',
    'MailchimpWebhookController@handle'
);

在我的 Controllers 文件夹中(Stripewebhook 控制器所在的位置),这里是我的 MailchimpWebhookController

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Log;


class MailchimpWebhookController extends Controller
{
    /**
     * Handle a Stripe webhook.
     *
     * @param  array  $payload
     * @return Response
     */
    public function handle(Request $request)
    {
        // Handle The Event

        return Response('My Mailchimp Webhook Handled', 200);
    }
}

在 Mailchimp 中,我将回调指定为 https://somesite.com/mailchimp/webhook

只是无法弄清楚为什么这不起作用...我已清除缓存,路由,但没有任何效果。如果我这样做:

Route::get('mailchimp/webhook', function()
{
    return Response('My Mailchimp Webhook Handled', 200);
});

然后就可以了。但这不会:

Route::post('mailchimp/webhook', function()
{
    return Response('My Mailchimp Webhook Handled', 200);
});

所以不知何故,post 方法似乎以某种方式绊倒了这一点。但就像我说的,条纹 webhook 工作得很好......

也许是显而易见的?

谢谢

【问题讨论】:

  • 我没有使用 Mailchimp 和 webhook 的经验。但是您必须确定 Mailchimp 确实在向 mailchimp/webhook 发出 POST 请求。 Mailchimp 仪表板中是否有任何日志?您可能还想查看服务器软件的访问日志,NginxApache

标签: laravel webhooks mailchimp


【解决方案1】:

HTTP 405 - Method not allowed

请求的资源不支持请求方法;例如,表单上的 GET 请求需要通过 POST 呈现数据,或只读资源上的 PUT 请求。

MailChimp 发送 GET 请求,但您正在等待 POST。

也许 GET 路线会有所帮助。

Route::get(
    'mailchimp/webhook',
    'MailchimpWebhookController@handle'
);

【讨论】:

  • 有趣,没有意识到 Mailchimp 在回调中需要 POST 和 GET 方法(GET 仅在我刚刚阅读的 Mailchimp 中设置 webhook 时使用!)
猜你喜欢
  • 2017-11-13
  • 1970-01-01
  • 2015-06-11
  • 2015-05-27
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
  • 2020-09-11
  • 2015-03-01
相关资源
最近更新 更多