今天在把釘釘小程式從本地 web 環境遷移到線上的時候出現了這個小問題,主要是本地環境使用的是 web 路由,線上使用的是 api 路由,而 laravel5.5 的 kernel.php 中介軟體組裡並沒有為 api 路由新增相關中介軟體導致
最直接的解決辦法就是在 App\Http\kernel.php 裡的 protected $middleware 裡新增中介軟體
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Session\Middleware\StartSession::class,//新增中介軟體
// \App\Http\Middleware\EnableCrossRequestMiddleware::class,
];
但是由於線上開發環境主管做了檔案修改限制,所以只能選擇直接在路由組裡新增
$api->group(['namespace'=>'App\Http\Controllers\Api\Mark','prefix'=>'mark','middleware'=>'\Illuminate\Session\Middleware\StartSession::class'],function($api){
$api->post('userInfo',"MdetailsController@userInfo");
$api->post('mdetails',"MdetailsController@create");
$api->get('alias',"MdetailsController@alias");
$api->get('mtypes',"MtypesController@index");
});