异步请求fetch API 以及响应数据的处理, 用户数据

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
异步请求fetch API 以及响应数据的处理, 用户数据的接收,session实战1. 表单的异步请求
  1. async function doLogin(obj){ //async 定义为异步函数
  2. const email = obj.form.email.value
  3. const password =obj.form.password.value
  4. // console.log(email, password);
  5. if(email.length >0 && password.length > 0){
  6. // 异步提交fetch api
  7. // console.log('111');
  8. const res = await fetch('./lib/user/handle.php',{
  9. //请求方法
  10. method:'post',
  11. //设置请求头
  12. headers:{
  13. 'content-type':'application/json;charset=utf-8'
  14. },
  15. //将需要传送到服务器上的数据,解析为json
  16. body:JSON.stringify({
  17. email,
  18. password
  19. })
  20. })
  21. // 解析返回的数据 response返回json格式时,用r.json()打印响应的内容
  22. const result = await res.json()
  23. console.log(result);
2.响应数据处理
  1. if(result){
  2. alert('登陆成功')
  3. location.href='index.php'
  4. }else{
  5. alert('验证失败')
  6. location.href='login.php'
  7. }
3.用户数据接收
  1. $json = file_get_contents('php://input');
  2. $user = json_decode($json, true);
  3. $email = $user['email'];
  4. $password = $user['password'];
4.用户过滤
  1. $result = array_values(array_filter($users,function($user)use($email,$password){
  2. return $user['email']===$email&&$user['password']===$password;
  3. }));
  4. $flag = false;
  5. if(count($result)===1){
  6. $flag = true;
  7. $_SESSION['username'] = $result[0]['name'] ;
  8. }
  9. echo json_encode($flag);
5.会话跟踪
  1. session_start();
  2. $username = $_SESSION['username'];
  3. <?php if (isset($username)) :;?>
  4. <?=$username?> <a href='#'>[注销]</a>
  5. <?php else:?>
  6. <a href="login.php">登录</a>
  7. <?php endif?>
【本文转自:韩国服务器 https://www.68idc.cn 复制请保留原URL】