我正在尝试使用laravel制作API。它们在localhost上运行良好,但是当我将它们上传到服务器时,它们给我错误
405方法不允许
routes / api.php
<?php
use Illuminate\Http\Request;
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::post('logout', 'API\LoginController@logout');
Route::resource('users', 'API\UserAPIController');
Controllers \ API \ LoginController.php
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\User;
use App\Http\Controllers\API\APIBaseController as APIBaseController;
use DB;
use Validator;
use Hash;
class LoginController extends APIBaseController
{
public function logout(Request $request)
{
$user_id=$request->user_id;
$user = User::find($user_id);
if (is_null($user)) {
return $this->sendError('User not found.');
}
User::where('id', $user->id)
->update([
'imei_no'=>'',
'device_id'=>''
]);
return $this->sendResponseArray($user_id, 'User successfully logout.');
}
}
Postman屏幕截图(服务器运行),其中显示错误
Postman屏幕截图(本地主机运行)成功执行
我已经尝试过许多在Stackoverflow上发布的答案,但是找不到任何解决方案
编辑:
我尝试在Routes中使用直接POST方法功能,但收到相同的错误,因此与Controller无关
Route::post('testPost', function(){
echo "Inside POST";
});
答案 0 :(得分:0)
使用any,可能会有帮助
Route::any('logout', 'API\LoginController@logout');
答案 1 :(得分:0)
不确定,但这必须是一个get
请求。
Route::get('logout', 'API\LoginController@logout');
带有参数
Route::get('logout/{user_id}', 'API\LoginController@logout');