{"id":887,"date":"2025-06-12T02:02:20","date_gmt":"2025-06-11T18:02:20","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/887.html"},"modified":"2025-06-12T02:02:20","modified_gmt":"2025-06-11T18:02:20","slug":"%e8%a7%a3%e5%86%b3-laravel-methodnotallowedhttpexception%ef%bc%885-%e4%b8%aa%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%ef%bc%89","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/887.html","title":{"rendered":"\u89e3\u51b3 Laravel MethodNotAllowedHttpException\uff085 \u4e2a\u89e3\u51b3\u65b9\u6848\uff09"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p><code>MethodNotAllowedHttpException<\/code> &#26159; Laravel &#20013;&#24120;&#35265;&#30340;&#38169;&#35823;&#20043;&#19968;&#65292;&#23427;&#34920;&#31034;&#35831;&#27714;&#26041;&#27861;&#19981;&#34987;&#20801;&#35768;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#35299;&#20915;&#36825;&#20010;&#38382;&#39064;&#30340;&#24120;&#35265;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#26816;&#26597;&#36335;&#30001;&#23450;&#20041;<\/h3>\n<p>&#30830;&#20445;&#20320;&#30340;&#36335;&#30001;&#23450;&#20041;&#27491;&#30830;&#65292;&#24182;&#19988;&#20351;&#29992;&#20102;&#27491;&#30830;&#30340; HTTP &#26041;&#27861;&#12290;<\/p>\n<pre><code class=\"language-php\">Route::get('\/example', function () {\n    return 'Hello, World!';\n})-&gt;name('example');<\/code><\/pre>\n<h3>&#26041;&#27861;&#20108;&#65306;&#26816;&#26597;&#25511;&#21046;&#22120;&#20013;&#30340;&#26041;&#27861;<\/h3>\n<p>&#30830;&#20445;&#25511;&#21046;&#22120;&#20013;&#30340;&#26041;&#27861;&#19982;&#36335;&#30001;&#23450;&#20041;&#19968;&#33268;&#12290;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass ExampleController extends Controller\n{\n    public function index(Request $request)\n    {\n        \/\/ &#22788;&#29702;&#35831;&#27714;\n        return 'Hello, World!';\n    }\n}<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#26816;&#26597;&#20013;&#38388;&#20214;<\/h3>\n<p>&#22914;&#26524;&#20351;&#29992;&#20102;&#20013;&#38388;&#20214;&#65292;&#30830;&#20445;&#23427;&#20204;&#27809;&#26377;&#38459;&#27490;&#29305;&#23450;&#30340;&#26041;&#27861;&#12290;<\/p>\n<pre><code class=\"language-php\">Route::middleware(['auth'])-&gt;group(function () {\n    Route::get('\/example', [ExampleController::class, 'index']);\n});<\/code><\/pre>\n<h3>&#26041;&#27861;&#22235;&#65306;&#26816;&#26597;&#23458;&#25143;&#31471;&#35831;&#27714;<\/h3>\n<p>&#30830;&#20445;&#23458;&#25143;&#31471;&#21457;&#36865;&#30340;&#35831;&#27714;&#26041;&#27861;&#19982;&#26381;&#21153;&#22120;&#31471;&#37197;&#32622;&#30340;&#19968;&#33268;&#12290;<\/p>\n<h3>&#26041;&#27861;&#20116;&#65306;&#26816;&#26597;&#27983;&#35272;&#22120;&#32531;&#23384;<\/h3>\n<p>&#26377;&#26102;&#20505;&#27983;&#35272;&#22120;&#32531;&#23384;&#21487;&#33021;&#20250;&#23548;&#33268;&#38382;&#39064;&#12290;&#23581;&#35797;&#28165;&#38500;&#27983;&#35272;&#22120;&#32531;&#23384;&#24182;&#37325;&#26032;&#35775;&#38382;&#39029;&#38754;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#31616;&#21333;&#30340;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;&#65292;&#25105;&#20204;&#38656;&#35201;&#22788;&#29702; GET &#21644; POST &#35831;&#27714;&#12290;<\/p>\n<p><strong>routes\/web.php<\/strong><\/p>\n<pre><code class=\"language-php\">Route::get('\/example', function () {\n    return 'Hello, World!';\n});\n\nRoute::post('\/example', function (Request $request) {\n    \/\/ &#22788;&#29702;POST&#35831;&#27714;\n    return 'Received POST request';\n});<\/code><\/pre>\n<p><strong>app\/Http\/Controllers\/ExampleController.php<\/strong><\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass ExampleController extends Controller\n{\n    public function index(Request $request)\n    {\n        \/\/ &#22788;&#29702;GET&#35831;&#27714;\n        return 'Hello, World!';\n    }\n\n    public function store(Request $request)\n    {\n        \/\/ &#22788;&#29702;POST&#35831;&#27714;\n        return 'Received POST request';\n    }\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#26041;&#27861;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#35299;&#20915; <code>MethodNotAllowedHttpException<\/code> &#38169;&#35823;&#12290;&#22914;&#26524;&#38382;&#39064;&#20173;&#28982;&#23384;&#22312;&#65292;&#35831;&#25552;&#20379;&#26356;&#22810;&#30340;&#19978;&#19979;&#25991;&#20449;&#24687;&#20197;&#20415;&#36827;&#19968;&#27493;&#35786;&#26029;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#27809;&#26377;&#23436;&#20840;&#34920;&#36798;&#28165;&#26970;&#12290;&#35831;&#37325;&#26032;&#25551;&#36848;&#24744;&#24819;&#35201;&#25105;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>MethodNotAllowedHttpException<\/code>&#22312;Laravel&#20013;&#65292;&#36890;&#24120;&#20250;&#20986;&#29616;&#24403;&#35831;&#27714;&#20013;&#30340;HTTP&#26041;&#27861;&#19982;&#38024;&#23545;&#32473;&#23450;URI&#23450;&#20041;&#30340;&#36335;&#30001;&#26041;&#27861;&#19981;&#19968;&#33268;&#26102;&#30340;&#38382;&#39064;&#12290;&#20197;&#19979;&#26159;&#24120;&#35265;&#21407;&#22240;&#21644;&#35299;&#20915;&#26041;&#26696;&#12290;<\/p><h2>&#35299;&#20915;&#26041;&#26696; 1&#65306;&#39564;&#35777;&#36335;&#30001;&#23450;&#20041;<\/h2><p>&#30830;&#20445;&#24744;&#21457;&#36865;&#30340;&#35831;&#27714;&#31526;&#21512;&#36335;&#30001;&#25991;&#20214;&#20013;&#23450;&#20041;&#30340;HTTP&#26041;&#27861;&#12290;<\/p><p>&#36305;&#21543;&#12290;<code>php artisan route:list<\/code>&#21015;&#20986;&#25152;&#26377;&#27880;&#20876;&#30340;&#36335;&#30001;&#24182;&#26816;&#26597;&#23427;&#20204;&#30340;&#26041;&#27861;&#12290;<\/p><p>&#26597;&#25214;&#23548;&#33268;&#38382;&#39064;&#30340;URI&#65292;&#24182;&#39564;&#35777;&#35831;&#27714;&#26041;&#27861;&#65288;GET&#12289;POST&#12289;PUT&#12289;PATCH&#12289;DELETE&#65289;&#26159;&#21542;&#31526;&#21512;&#24744;&#30340;&#24847;&#22270;&#12290;<\/p><p>&#26816;&#26597;&#24744;&#30340; Web &#25110; API &#36335;&#30001;&#25991;&#20214;&#65288;&#36890;&#24120;&#20301;&#20110;&#65289;<code>web.php<\/code>&#21734;&#65292;&#26159;&#30340;&#12290;<code>api.php<\/code>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#28040;&#24687;&#19981;&#22815;&#23436;&#25972;&#65292;&#25105;&#26080;&#27861;&#29702;&#35299;&#24744;&#35201;&#34920;&#36798;&#30340;&#20869;&#23481;&#12290;&#22914;&#26524;&#24744;&#33021;&#25552;&#20379;&#26356;&#22810;&#32972;&#26223;&#20449;&#24687;&#25110;&#37325;&#26032;&#25551;&#36848;&#24744;&#30340;&#35831;&#27714;&#65292;&#25105;&#20250;&#24456;&#20048;&#24847;&#20026;&#24744;&#25552;&#20379;&#24110;&#21161;&#12290;<code>routes<\/code>&#25991;&#20214;&#22841;&#65289;&#12290;<\/p><p>&#22914;&#26524;&#24744;&#30340;&#23458;&#25143;&#21457;&#36865;&#19968;&#20010;POST&#35831;&#27714;&#65292;&#24744;&#30340;&#36335;&#30001;&#23450;&#20041;&#24212;&#35813;&#22914;&#19979;&#25152;&#31034;&#65306;<\/p><pre><code>Route::post('example', 'ExampleController@store');<\/code><\/pre><h2>&#35299;&#20915;&#26041;&#26696; 2&#65306;&#26356;&#26032;&#34920;&#21333;&#26041;&#27861;<\/h2><p>HTML&#34920;&#21333;&#19981;&#30452;&#25509;&#25903;&#25345;PUT&#12289;PATCH&#25110;DELETE&#26041;&#27861;&#12290;&#22240;&#27492;&#65292;&#22914;&#26524;&#20320;&#20351;&#29992;&#36825;&#20123;HTTP&#26041;&#27861;&#65292;&#35831;&#22312;&#34920;&#21333;&#20013;&#21253;&#21547;&#19968;&#20010;&#38544;&#34255;&#30340;&#26041;&#27861;&#23383;&#27573;&#12290;<\/p><p>&#30830;&#20445;&#24744;&#30340;&#36335;&#32447;&#21644;&#34920;&#21333;&#26041;&#27861;&#35268;&#33539;&#19968;&#33268;&#12290;<\/p><p>&#28155;&#21152;<code>@method('PATCH')<\/code>&#22312;&#24744;&#30340;Laravel Collective&#34920;&#21333;&#25110;HTML&#34920;&#21333;&#20803;&#32032;&#20869;&#37096;&#65292;&#21487;&#20197;&#20351;&#29992;&#21478;&#19968;&#20010;&#36866;&#29992;&#30340;&#26041;&#27861;&#25351;&#31034;&#22120;&#12290;<\/p><p>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>&lt;form action=\"\/example\" method=\"POST\"&gt; \n  @csrf @method('PUT') \n  ...other form elements... \n&lt;\/form&gt;<\/code><\/pre><h2>&#35299;&#20915;&#26041;&#26696; 3&#65306;CSRF &#26631;&#22836;&#21253;&#21547;<\/h2><p>&#32570;&#23569;CSRF&#20196;&#29260;&#21487;&#33021;&#23548;&#33268;&#20197;&#19979;&#38382;&#39064;&#65306;<code>MethodNotAllowedHttpException<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#22914;&#26524;&#20351;&#29992;AJAX&#65292;&#21487;&#20197;&#22312;&#35831;&#27714;&#22836;&#25110;&#25968;&#25454;payload&#20013;&#21253;&#21547;CSRF&#20196;&#29260;&#12290;<\/p><p>&#30830;&#20445;&#22312;&#38750;GET&#35831;&#27714;&#30340;&#34920;&#21333;&#20013;&#21253;&#21547;CSRF&#20196;&#29260;&#23383;&#27573;&#12290;<\/p><p>&#35831;&#26816;&#26597;&#24744;&#30340;&#20195;&#30721;&#65292;&#24182;&#22312;HTML&#34920;&#21333;&#20013;&#21253;&#21547;&#20197;&#19979;&#20869;&#23481;&#65306;<code>@csrf<\/code>&#24050;&#25910;&#21040;&#25351;&#20196;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#27880;&#24847;&#65306;&#20351;&#29992;jQuery&#26356;&#26032;&#20840;&#23616;&#22836;&#37096;&#20449;&#24687;&#65306;<\/p><pre><code>$.ajaxSetup({\n    headers: {\n        'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n    }\n});\n<\/code><\/pre><h2>&#35299;&#20915;&#26041;&#26696; 4&#65306;&#28165;&#38500;&#36335;&#30001;&#32531;&#23384;<\/h2><p>&#32531;&#23384;&#38382;&#39064;&#26377;&#26102;&#20250;&#23548;&#33268;&#27492;&#38382;&#39064;&#12290;&#28165;&#38500;&#36335;&#30001;&#32531;&#23384;&#21487;&#33021;&#20250;&#26377;&#25152;&#24110;&#21161;&#12290;<\/p><p>&#35831;&#37325;&#26032;&#25552;&#20132;&#30003;&#35831;&#24182;&#20877;&#27425;&#27979;&#35797;&#36335;&#30001;&#12290;<\/p><p>&#22914;&#26524;&#38656;&#35201;&#65292;&#20063;&#28165;&#38500;&#24212;&#29992;&#32531;&#23384;&#21644;&#37197;&#32622;&#12290;<code>php artisan cache:clear<\/code>and &#26159;&#20013;&#25991;&#37324;&#34920;&#31034;&ldquo;&#21644;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>php artisan config:clear<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><p>&#36305;&#12290;<code>php artisan route:clear<\/code>&#28165;&#38500;&#36335;&#30001;&#32531;&#23384;&#12290;<\/p><p>&#36825;&#26159;&#22240;&#20026;&#36825;&#26159;&#19968;&#20010;&#21629;&#20196;&#34892;&#25805;&#20316;&#65292;&#38500;&#20102;&#25552;&#20379;&#30340;artisan&#21629;&#20196;&#20043;&#22806;&#65292;&#19981;&#38656;&#35201;&#36827;&#34892;&#20219;&#20309;&#20195;&#30721;&#20462;&#25913;&#12290;<\/p><h2>&#35299;&#20915;&#26041;&#26696; 5&#65306;&#20013;&#38388;&#20214;&#37197;&#32622;<\/h2><p>&#37197;&#32622;&#38169;&#35823;&#25110;&#26410;&#27491;&#30830;&#25490;&#24207;&#30340;&#20013;&#38388;&#20214;&#21487;&#33021;&#23548;&#33268;&#36335;&#30001;&#38382;&#39064;&#12290;<\/p><p>&#30830;&#20445;&#27809;&#26377;&#26080;&#24847;&#20013;&#20462;&#25913;&#35831;&#27714;&#26041;&#27861;&#30340;&#20013;&#38388;&#20214;&#12290;<\/p><p>&#26816;&#26597;&#20013;&#38388;&#20214;&#24207;&#21015;&#65292;&#30830;&#20445;&#20854;&#22312;HTTP&#26680;&#27491;&#30830;&#26377;&#24207;&#12290;<\/p><p>&#27880;&#24847;&#20107;&#39033;&#65306;&#20013;&#38388;&#20214;&#30340;&#39034;&#24207;&#33267;&#20851;&#37325;&#35201;&#65292;&#22240;&#20026;&#23427;&#20204;&#25353;&#24207;&#21015;&#22788;&#29702;&#65292;&#24182;&#19988;&#21487;&#20197;&#20462;&#25913;&#35831;&#27714;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Laravel MethodNotAllowedHttpException &#26159;&#22312;&#20351;&#29992; Laravel &#26694;&#26550;&#26102;&#24120;&#35265;&#30340;&#38169;&#35823;&#31867;&#22411;&#20043;&#19968;&#65292;&#23427;&#34920;&#31034;&#23458;&#25143;&#31471;&#35831;&#27714;&#30340; URL &#19981;&#31526;&#21512;&#39044;&#26399;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#35299;&#20915;&#27492;&#38382;&#39064;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;1&#65306;&#26816;&#26597;&#36335;&#30001;&#26435;&#38480;<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24744;&#30340;&#25511;&#21046;&#22120;&#26041;&#27861;&#21644;&#30456;&#24212;&#30340;&#36335;&#30001;&#21305;&#37197;&#12290;&#22914;&#26524;&#20004;&#32773;&#19981;&#21305;&#37197;&#65292;&#23458;&#25143;&#31471;&#20250;&#25910;&#21040;&#27492;&#24322;&#24120;&#12290;<\/p>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>:<\/p>\n<pre><code class=\"language-php\">\/\/ controller.php\npublic function index()\n{\n    \/\/ ...\n}\n\n\/\/ routes\/web.php\nRoute::get('\/admin', 'AdminController@index')-&gt;middleware('auth');<\/code><\/pre>\n<h3>&#26041;&#27861;2&#65306;&#35774;&#32622;&#27491;&#30830;&#30340; HTTP &#29366;&#24577;&#30721;<\/h3>\n<p>&#24403;&#24744;&#36935;&#21040;&#27492;&#38382;&#39064;&#26102;&#65292;&#21487;&#20197;&#23558;&#21709;&#24212;&#29366;&#24577;&#35774;&#32622;&#20026; 400&#65288;Bad Request&#65289;&#12290;&#36825;&#34920;&#26126;&#26381;&#21153;&#22120;&#26080;&#27861;&#29702;&#35299;&#23458;&#25143;&#31471;&#21457;&#20986;&#30340;&#35831;&#27714;&#12290;<\/p>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>:<\/p>\n<pre><code class=\"language-php\">\/\/ controller.php\npublic function index()\n{\n    return response()-&gt;json(['error' =&gt; 'Method not allowed.']);\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#22312; <code>app\/Http\/Controllers<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#65292;&#20363;&#22914; <code>index.blade.php<\/code> &#24182;&#28155;&#21152;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesRoute;\n\nclass HomeController extends Controller\n{\n    public function index(Request $request)\n    {\n        if ($request-&gt;method() !== 'GET') {\n            return response()-&gt;json([\n                'error' =&gt; 'Method not allowed.',\n            ], 400);\n        }\n\n        \/\/ ... &#20854;&#20182;&#36923;&#36753;\n    }\n}<\/code><\/pre>\n<h3>&#26041;&#27861;3&#65306;&#20351;&#29992;&#20013;&#38388;&#20214;&#22788;&#29702;&#35831;&#27714;&#22836;&#20449;&#24687;<\/h3>\n<p>&#36890;&#36807;&#22312;&#36335;&#30001;&#37197;&#32622;&#20013;&#28155;&#21152;&#20013;&#38388;&#20214;&#26469;&#22788;&#29702;&#35831;&#27714;&#22836;&#20013;&#30340; &#8220;X-HTTP-Method-Override&#8221; &#21442;&#25968;&#12290;&#36825;&#26679;&#21487;&#20197;&#20801;&#35768;&#29992;&#25143;&#33258;&#23450;&#20041;&#35831;&#27714;&#22836;&#20013;&#30340;&#20540;&#65292;&#24182;&#20801;&#35768;&#20182;&#20204;&#25351;&#23450;&#35201;&#20351;&#29992;&#30340;&#35831;&#27714;&#26041;&#27861;&#12290;<\/p>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>:<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\nRoute::group(['middleware' =&gt; ['x_http_method_override']], function () {\n    \/\/ ... &#20854;&#20182;&#36335;&#30001;...\n});<\/code><\/pre>\n<h3>&#26041;&#27861;4&#65306;&#20351;&#29992;&#36335;&#30001;&#21442;&#25968;&#39564;&#35777;<\/h3>\n<p>&#30830;&#20445;&#22312;&#36335;&#30001;&#20013;&#27491;&#30830;&#22320;&#20351;&#29992;&#20102; <code>:method<\/code> &#21442;&#25968;&#12290;&#22914;&#26524;&#32570;&#23569;&#36825;&#20010;&#21442;&#25968;&#65292;&#37027;&#20040;&#40664;&#35748;&#20540;&#23558;&#20250;&#26159; GET&#12290;&#22240;&#27492;&#65292;&#24517;&#39035;&#39564;&#35777;&#35831;&#27714;&#26159;&#21542;&#20026; GET &#35831;&#27714;&#12290;<\/p>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>:<\/p>\n<pre><code class=\"language-php\">\/\/ route\/web.php\nRoute::get('\/admin\/{id}', 'AdminController@show')-&gt;where('method', 'GET|POST')-&gt;name('show');\n\n\/\/ controller.php\npublic function show($id)\n{\n    if (request()-&gt;has('method')) {\n        $method = request()-&gt;input('method');\n        if ($method === 'GET') {\n            return view('show');\n        } else {\n            abort(400, 'Method not allowed.');\n        }\n    }\n\n    \/\/ ... &#20854;&#20182;&#36923;&#36753;\n}<\/code><\/pre>\n<h3>&#26041;&#27861;5&#65306;&#20351;&#29992; Laravel &#30340; API Gateway &#25110;&#32773;&#20013;&#38388;&#20214;&#24211;<\/h3>\n<p>&#22914;&#26524;&#24744;&#27491;&#22312;&#20351;&#29992; Laravel &#30340; API Gateway&#65292;&#22914; Mixpanel &#25110;&#32773; Akeneo&#65292;&#21017;&#21487;&#20197;&#22312;&#24212;&#29992;&#20013;&#21551;&#29992; CORS&#65288;&#36328;&#22495;&#36164;&#28304;&#20849;&#20139;&#65289;&#31574;&#30053;&#65292;&#20174;&#32780;&#20801;&#35768;&#38750;&#21516;&#28304;&#36164;&#28304;&#35775;&#38382;&#12290;<\/p>\n<p><strong>&#31034;&#20363;&#20195;&#30721;<\/strong>:<\/p>\n<pre><code class=\"language-php\">\/\/ api\/gateway.php\n$allowedOrigins = [\n    '*',\n];\n\n$responseHeaders = [\n    'Access-Control-Allow-Origin' =&gt; implode(', ', $allowedOrigins),\n    'Access-Control-Allow-Methods' =&gt; 'GET, POST, PUT, DELETE',\n    'Access-Control-Allow-Headers' =&gt; 'Content-Type',\n];\n\nreturn new Response('', 200, compact('responseHeaders'));<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312;&#20351;&#29992; Laravel &#26694;&#26550;&#26102;&#36935;&#21040; <code>MethodNotAllowedHttpException<\/code> &#26102;&#21487;&#33021;&#37319;&#21462;&#30340;&#20116;&#31181;&#35299;&#20915;&#26041;&#26696;&#12290;&#26681;&#25454;&#20855;&#20307;&#24773;&#20917;&#36827;&#34892;&#36873;&#25321;&#24182;&#32467;&#21512;&#23454;&#38469;&#19994;&#21153;&#38656;&#27714;&#36827;&#34892;&#35843;&#25972;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; MethodNotAllowedHttpException &#26159; Laravel &#20013;&#24120;&#35265;&#30340;&#38169;&#35823;&#20043;&#19968;&#65292;&#23427;&#038;#349..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-887","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=887"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=887"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=887"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}