Метод Laravel POST отправляется как метод GET. Код 405

Итак, я уже рассмотрел ответы, связанные с моей проблемой. У меня есть приложение laravel, которое отлично работает на моем сервере localhost. Маршруты там работают нормально. Но когда я загрузил свое приложение laravel на общий хостинг, работают только методы GET. Когда я пытаюсь использовать любой запрос POST, например войти в свое приложение, он отправляет код ошибки 405. Так что я покажу вам, что не так, например, когда я вхожу в систему.

Это маршрут.

Route::post('authinticate',['as'=>'authinticate','uses'=>'LoginController@authenticate']);

Функция контроллера

public function authenticate(LoginRequest $request)
    { //$credentials = $request->only('user_name', 'password');

        $credentials = array(
            'user_name' => $request->input('username'),
             'password' => $request->input('password'),
            );


        if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect()->route('home');
        }
        else{
            return redirect()->back()->withErrors(['message' => 'اسم المستخدم او كلمة المرور غير صحيحين.']);
        }
    }

HTML-форма:

<form method="POST" action="{{ route('authinticate') }}">
                @csrf

                    <div class="form-group signIn">
                        <label for="username">اسم المستخدم</label>
                        <input type="text" name="username" placeholder="اسم المستخدم" class="form-control" id="username" value="{{ old('user_name') }}">
                    </div>
                    <div class="form-group">
                        <label for="password">كلمة المرور</label>
                        <input type="password" name="password" placeholder="كلمة المرور" class="form-control" id="password">
                        <p></p>
                        <a href="{{ route('forgot') }}" >نسيت كلمة المرور</a>
                    </div>
                    <input type="submit" class="btn btn-block btn-default btn-success" name="submit" id="submit" value="دخـــول">
                </form>

Это то, что я получаю из консоли перед отправкой формы.

Mixed Content: The page at 'https://www.aouacc.net/login' was loaded over a secure connection, but contains a form that targets an insecure endpoint 'http://www.aouacc.net/authinticate'. This endpoint should be made available over a secure connection.

И это после отправки. введите здесь описание изображения

введите здесь описание изображения


person mkabbanii    schedule 16.08.2018    source источник
comment
Можете ли вы показать свой home маршрут и контроллер? И можете ли вы войти в свою authenticate функцию, чтобы убедиться, что она 1) попадает в функцию и 2) на какую перенаправление она собирается?   -  person aynber    schedule 16.08.2018


Ответы (1)


Проверьте заголовки, запрос POST на http://www.aouacc.net/aunthinticate возвращает заголовок 301 Mover Permanently, который запускает перенаправление на версию https. Поскольку, по-видимому, вы не устанавливаете это перенаправление в своем коде, оно могло быть установлено на уровне сервера. Измените свои маршруты, чтобы они использовали https://www.aouacc.net вместо http://www.aouacc.net.

person José A. Zapata    schedule 16.08.2018
comment
Хорошо, но как я могу это сделать? Также я забыл упомянуть, что я использую облачную вспышку, возможно, она передает что-то, что вызывает проблему? - person mkabbanii; 17.08.2018
comment
Проверьте свою конфигурацию Cloudflare, есть правило, которое автоматически перенаправляет все http запросы на https. Я думаю, что вариант - Автоматическая перезапись HTTPS. Если вы действительно хотите использовать https, вам нужно принудительно включить его во все свои правила. Проверьте ответ здесь: stackoverflow.com/ questions / 28402726 /, чтобы узнать, как это сделать. - person José A. Zapata; 17.08.2018