在我的应用程序中,我尝试执行登录部分,其中用户使用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);
}
}
}
答案 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>