我确信这将被标记为重复,但我已经浏览了所有关于同一主题的给定问题,并尝试了许多建议的解决方案,但它们都不起作用。
我在一个laravel项目中,我有一个通过Guzzle发出的post请求。
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url, [
'headers' => [
'Authorization' => 'Bearer ' . $apiToken,
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'allow_redirects' => false,
// 'allow_redirects'=>['strict'=>true]
],
'json' => json_decode($logText, true)
]);
我一直在获取返回的响应“消息”:“此路由不支持GET方法。支持的方法:POST.”
我已经检查过了,实际上,它正在向上面指定的同一个$url
发送GET请求。
起初我没有这些allow_redirects
设置,但当我搜索时,这两个设置都作为潜在的解决方案提供了。 不幸的是,这两个选项都会导致相同的错误消息:此路由不支持GET方法。
为什么我的POST请求会变成GET请求?
我还尝试了$client->post
,这也变成了一个GET请求。
我还再次检查了GET错误消息实际上不是来自POST请求内部:它不是。 邮局的路线根本没有被击中。
PHP版本7.2
,Laravel版本6.0.2
,Guzzle版本6.5.3
检查服务器上的重定向,如HTTP->; HTTPS。 重定向总是一个GET请求,这会使非GET路由变得混乱。 始终使用正确的协议(如始终使用HTTPS)将绕过重定向。