Post 方法上的 MethodNotAllowedHttpException
Posted
技术标签:
【中文标题】Post 方法上的 MethodNotAllowedHttpException【英文标题】:MethodNotAllowedHttpException on Post Method 【发布时间】:2019-06-28 12:34:06 【问题描述】:开始使用 Laravel,我在尝试发布到我的一个页面时遇到了问题。
我正在使用 Postman 为我的 /clock 页面创建一个发布请求。
该帖子正在发送一个带有单个字段的简单 Json:
这是帖子的标题:
我的路由目前放在 routes/api.php 文件夹中,包含以下内容:
<pre>
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:api')->get('/user', function (Request $request)
return $request->user();
);
Route::post('/json', 'FormController@post');
Route::post('/clock', 'PayrollController@index');
它链接到app/Http/Controller/PayrollController.php
的控制器的代码如下所示:
<?php
namespace App\Http\Controllers;
use GuzzleHttp\Client;
use App\Company;
use Response;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class PayrollController extends Controller
function __construct()
public function index()
当我在 Postman 中执行帖子时,这是我得到的错误:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: in file /var/www/html/oit_laravel1/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php on line 255
Stack trace:
1. Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException->() ...
【问题讨论】:
检查您的服务器日志。这看起来像邮递员错误。有时邮递员会随机发送 get 而不是 post。这将显示在您的服务器日志中。你也可以发布 php artisan route:list 的结果吗? 另外在标签页的正文旁边添加一个标题:Accept and the Value application/json 如果你在 api.php 中定义路由,Laravel 会自动为它们添加前缀 /api。你是发布到 /api/clock 还是只发布到 /clock? Error 405 (Method Not Allowed) Laravel 5的可能重复 【参考方案1】:问题是你在get Request上定义了一个post Route,定义你的请求使用post header,如果使用表单,改变方法来发布,如果不查询数据库,改变你的Route到
Route::get('/clock', 'PayrollController@index');
【讨论】:
以上是关于Post 方法上的 MethodNotAllowedHttpException的主要内容,如果未能解决你的问题,请参考以下文章
REST服务上的错误请求错误使用POST(json数据)调用方法?
带有反应应用程序的 POST 上的 ASP.NET CORS 异常
在API上的“post”方法获取“org.glassfish.jersey.message.internal.HeaderValueException”错误