繁体   English   中英

使用JQuery发送表单数据并解析返回的JSON数据

[英]Sending form data using JQuery and parsing the returned JSON data

这可能是一个相对简单的任务,但我不知道为什么过去三天一直在为此苦苦挣扎。

我必须创建一个将电子邮件和密码发送到php文件的登录表单。 php文件验证用户并返回JSON数据。 如果登录成功,则返回JSON:

enter{"error":0,"message":"User successfully logged in!","api_key":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdHJlZXRlYXRfdXNlcmhhbmRsZXIiLCJleHAiOjE0NDA0Mjg5NDEsImlhdCI6MTQzOTUyODk0MX0.OcDRN4tiQrZPJnpA3Iw2tF4kogYxX-DuDhFqd8vqQts"}

如果登录不成功:

enter{"error":1,"message":"User doesn't exist!"}

如果登录成功,则表单需要将用户重定向到另一个html页面。 我已经尝试了几乎所有的jQuery方法($ .post,$。ajax)来发送表单数据并接收JSON数据,但到目前为止仍未成功。 我试过的代码:

HTML:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="img.js"></script>
</head>

<body>
<div data-role="page">
<div data-role="header" class="ui-content">Login</div>
<div data-role="content" class="ui-content">
<form method="post" action="#" id="loginform">
  <div class="ui-field-contain">

  <br>
  <div>
    <label for="email">Email:</label>
    <input type="email" name="email" id="email" data-clear-btn="true">
  </div>

  <div>
     <label for="password">Password:</label>
     <input type="password" name="password" id="password" data-clear-btn="true">
 </div>
 <input type="button" value="Login" id="login">
 </div>
 </form>
 </div>

JavaScript代码:

$(document).ready(function(){
  $("#login").click(function(){
    var email = $("#email").val();
    var password = $("#password").val();
    // Checking for blank fields.
    if (email =='' || password =='') {
      alert("Please fill all fields...!!!!!!");
    }
    else {
      $.post("http://streetdict.esy.es/v1/login",{ email: email, password:password},
        function(data) {
          var json_response=data;
          alert(json_response);
      });
    }
  });
});

这段代码基本上应该只将JSON响应显示为警报,对吗? 除了它什么都不显示。 我需要做的是,如果登录成功,它应该使用ajax异步重定向到另一个名为untitled.html的页面。 有人请帮助我!

使用下面的代码发送发布请求,然后检查响应

$(document).ready(function(){
 $("#login").click(function(){
 var email = $("#email").val();
 var password = $("#password").val();
 // Checking for blank fields.
 if( email =='' || password ==''){
 alert("Please fill all fields...!!!!!!");
  }
 else {

  $.ajax({
     url:'http://streetdict.esy.es/v1/login',
     type:'POST',
     data:{ email: email,  password:password},
     success:function(data){
         if(data['error'] == '0'){
             window.location.href = 'untitled.html';
         }
     },
     error:function(e){
         alert("error in request");
     },
  });

}
   });
  });
    $(document).ready(function(){
  $("#login").click(function(){
    var email = $("#email").val();
    var password = $("#password").val();
    // Checking for blank fields.
    if (email =='' || password =='') {
      alert("Please fill all fields...!!!!!!");
    }
    else {
      $.getJSON("http://streetdict.esy.es/v1/login",{ email: email,        password:password}).done(function(data) {
           $.each(data, function(key, value) {
//you can do your logic here
      });
    }
  });
});

您可以检查响应的字符串是否为json。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM