获取json数据并保存会话?

时间:2019-08-13 16:01:16

标签: php html

在我的应用程序中,我尝试执行登录部分,其中用户使用POST向我自己的REST API提交表单,该REST API接受POST请求。

在我的API中,我已将其设置为从数据库提取数据后返回JSON对象。我希望这个API也可以在android应用程序中使用,以获取JSON数据,因此我无法将API代码重定向回首页。

如何在加载主页之前使用JSON对象重定向回主页并保存会话数据?

主页应显示在用户已登录的角落。

<form class = "form" action =<?php $_SERVER["DOCUMENT_ROOT"] ?> "/shades-api/get/login.php" method = "POST">
...
<button type="submit" name ="usignin" class="btn btn-success">Sign In</button>
</form>

API代码

header('Content-Type: application/json');
if(session_status() == PHP_SESSION_NONE){
  session_start();
}
require($_SERVER["DOCUMENT_ROOT"] .'/shades-api/services/userservice.php');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  if(isset($_POST['email']) && !is_null($_POST['email']) && trim($_POST['email']) != ""){
    if(isset($_POST['password']) && !is_null($_POST['password']) && trim($_POST['password']) != ""){

        $UserService = new Services\UserService();
        $json_obj = $UserService->login($_POST['email'], $_POST['password']);
      echo json_encode($json_obj);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是REST API,则可以使用ajax 在jquery下面写这个:

<script>
$(document).ready(function() {
$(".form").submit(function(event) {
        event.preventDefault();
        var _form = $(this);
        var data = _form.serialize();
        var url = _form.attr('action');

        $.ajax({
            type: 'POST',
            url: url,
            data: data,
            dataType: "json",
            success: function(response) {
                        alert("Login successfully");
                       // write your redirect page
                        $('<a href="index.php" id="aa"></a>').appendTo("body");
                        document.getElementById("aa").click();                  


            },
            error: function() {}
        })
    });
});
</script>