AJAX jQuery не работает при запросе к базе данных - PullRequest
0 голосов
/ 01 декабря 2018

В моем коде я получаю first_name, last_name, email и password от пользователя.Затем я получаю местоположение пользователя с его / ее согласия на второй странице.Итак, я сохраняю всю информацию первой страницы в виде session переменных.Затем у меня есть кнопка, которая выглядит следующим образом:

<button onclick="signUp()" class="btn btn-primary"> Let's go! </button>

И функция signUp выглядит следующим образом:

function signUp(){

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });


        $.post("/sign-up-user",
        {
            user_latitude: latitude,
            user_longitude: longitude
        }, function(data){
            alert(data);
        });
    }

И у меня есть маршрут для запроса как:

Route::post("/sign-up-user", "PagesController@signUpFinalUser");

И моя PagesController функция signUpFinalUser выглядит следующим образом:

// Finally acquire the user with location and store him/her in the database
public function signUpFinalUser(Request $request){
  // Get all required variables
  $final_first_name = Session::get("user_first_name");
  $final_last_name = Session::get("user_last_name");
  $final_email = Session::get("user_email");
  $final_password = Session::get("user_password");
  $final_latitude = (float) $request->user_latitude;
  $final_longitude = (float) $request->user_longitude;

  // Create a new instance of the User model
  $user = new User;
  // Fill all the required columns of the database of the user
  $user->first_name = $final_first_name;
  $user->last_name = $final_last_name;
  $user->email = $final_email;
  $user->password = $final_password;
  $user->latitude = $final_latitude;
  $user->longitude = $final_longitude;
  // Save the user i.e store the user in the database
  $user->save();
  // Get the id of the user
  $user_id = $user->id;
  // Destroy all the sessions variable
  Session::destroy();
  // Create a session variable named 'user_id'
  Session::put("user_id", $user_id);
  // Return a response back
  return 1;
}

Но проблема в том, что отображается ошибка, которая выглядит следующим образом:

jquery.min.js:2 POST http://localhost:8000/sign-up-user 500 (Internal Server Error)

Но, что удивительно, когда я закомментирую запрос к базе данных и снова выполню его, данные ответа, то есть «1», будут предупреждены.Итак, что я делаю не так?

1 Ответ

0 голосов
/ 01 декабря 2018

Вы уничтожили сессию перед тем, как поставить user_id

// Destroy all the sessions variable
Session::destroy();
// Create a session variable named 'user_id'
Session::put("user_id", $user_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...