没有回应ajax请求

时间:2014-04-28 13:09:57

标签: php jquery ajax

我正在尝试使用ajax进行简单登录。我遇到的问题是我的请求没有得到任何回复。当我尝试使用

  

myurl.com/login.php is_ajax = 1& username = test& password = test

我收到了成功的消息。

 $(document).ready(function(){

    $("#submit").click(function(){   
var form_data = {
       usernm: $("#username").val(),
       passwd: $("#password").val(),
      is_ajax: 1
    };

      $.ajax({
      type:"POST",
      url: "myurl.php" , 
      data: form_data,
      succes: function (response)
      {
        if (response == 'succes'){
        window.location="myurl.html";
      }
        else{
        alert("wrong username password combination")
       }
        }

      });
return false;

  });    
 });

我的php:

$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
 {
$uName = $_REQUEST ['username'];
$pWord = $_REQUEST ['password'];

if($uName == 'test' && $pWord == 'test'){
echo 'succes';

}
else{
echo 'false';
}
}   

3 个答案:

答案 0 :(得分:1)

你应该使用

$uName = $_REQUEST ['usernm'];
$pWord = $_REQUEST ['passwd'];

INSTEAD

$uName = $_REQUEST ['username'];
$pWord = $_REQUEST ['password'];

在您的php文件中,将succes更改为success

答案 1 :(得分:0)

succes替换为success

$.ajax({
  type:"POST",
  url: "myurl.php" , 
  data: form_data,
  success: function (response){
    if (response == 'success'){
      window.location="myurl.html";
    }else{
      alert("wrong username password combination");
    }
  }
});

也会更改数据属性名称

var form_data = {
  username: $("#username").val(),
  password: $("#password").val(),
  is_ajax: 1
};

答案 2 :(得分:0)

如果你使用$ .ajax,那么你的数据类型是错误的。它必须是application / x-www-form-urlencoded。

所以请将你的JS部分更改为:

 $(document).ready(function(){

$("#submit").click(function(){   
var form_data = {
   usernm: $("#username").val(),
   passwd: $("#password").val(),
  is_ajax: 1
};

      $.ajax({
      type:"application/x-www-form-urlencoded",
      url: "myurl.php" , 
      data: form_data,
      success: function (response)
      {
        if (response == 'success'){
        window.location="myurl.html";
      }
        else{
        alert("wrong username password combination")
       }
        }

      });
return false;

  });    
 });

或者,如果您不确定正确的MIME类型,那么只需使用此jQuery命令:

$(document).ready(function(){

$("#submit").click(function(){   
var form_data = {
   usernm: $("#username").val(),
   passwd: $("#password").val(),
  is_ajax: 1
};

      $.post("myurl.php",
             form_data,
             function (response)
             {
                 if (response == 'success'){
                     window.location="myurl.html";
                 }
                 else{
                     alert("wrong username password combination")
                 }
             });
return false;

  });    
 });

请更改PHP代码的以下行

$uName = $_REQUEST ['username'];
$pWord = $_REQUEST ['password'];

对此:

$uName = $_REQUEST ['usernm'];
$pWord = $_REQUEST ['passwd'];

因为这些是正确的密钥,您发送到您的php服务器文件。此外,不需要定义“is_ajax”键,因为每个XMLHttpRequest都将“X_REQUESTED_WITH”标头设置为“XMLHttpRequest”。所以,你可以在你的php服务器部分e中请求它。 G。用:

if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest')
{
    // it was an ajax XHR request!
}