【问题标题】:Getting json data and saving session?获取 json 数据并保存会话?
【发布时间】:2019-08-14 03:16:12
【问题描述】:

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

在我的 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);
    }
  }
}

【问题讨论】:

    标签: php html


    【解决方案1】:

    如果您使用的是 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>
    

    【讨论】:

    • 我尝试使用 ajax jquery 发送数据并从我的 API 中检索。但是它不起作用,我得到的响应是 0。我将数据发送到另一个在线 api,它工作得很好,但问题出在我的 api 上。我什至尝试在没有表单的情况下发送数据,而只是硬编码输入,但这些都不起作用
    • 你有邮递员应用程序,你可以从那里调试你的 api。
    • 是的,经过两天的工作终于奏效了。问题是我使用的一个愚蠢的错误。我没有输入相对路径,而是输入了绝对路径,由于某种原因它不适用于 ajax。
    猜你喜欢
    • 2020-11-15
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2013-09-04
    相关资源
    最近更新 更多