首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax将根据响应继续进行

问ajax将根据响应继续进行
EN

Stack Overflow用户
提问于 2013-10-09 08:32:58
回答 3查看 92关注 0票数 0

我使用折叠代码来保存机器上的imag文件,如果用户是真实的,则保存图像,否则应该显示注册页面。但是在保存图像页面后是刷新的或者是身份验证失败的,不能重定向注册。有什么问题吗?

js ajax::

代码语言:javascript
复制
$.ajax({
  type: "POST",
  url: "userLoginAction.php",
  data: {image: dataURL,uname:uname,pwd:pwd}
}).done(function( respond ) {
 alert("Downloading Completed"+respond);
 console.log('back on download js**');
});

userLoginAction.php ::

代码语言:javascript
复制
<?php 
include("sessionHandler.php");
include("../connect.php");
$con = connectDb();
$db = SelectDB($con);

$username = $_REQUEST['uname'];
$password = $_REQUEST['pwd'];
$img= $_POST['image'];

// To protect MySQL injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$query = "SELECT * FROM user WHERE user_email ='".$username."' AND user_password='".$password."'";
$result = mysql_query($query);

$count=mysql_num_rows($result);
if($count==1){
    // Register $myusername, $mypassword and redirect to file 
    createLoginSession($username,$password);
    include 'download.php'; 

}
else {
    echo "Wrong Username or Password".$img;
    header("location:signup.php");
}
?>
EN

回答 3

Stack Overflow用户

发布于 2013-10-09 08:37:35

因为服务器端的重定向操作不能与ajax.You一起工作,所以在ajax成功的过程中必须重定向,比如this..Try

Ajax

代码语言:javascript
复制
$.ajax({
  type: "POST",
  url: "userLoginAction.php",
  data: {image: dataURL,uname:uname,pwd:pwd}
}).done(function( respond ) {
   if(respond == 'download'){
      alert("Downloading Completed"+respond);
      console.log('back on download js**');
   }
   else if(respond == 'login'){
      window.location = "url/to/loginpage";
   }
});

PHP

代码语言:javascript
复制
include("sessionHandler.php");
include("../connect.php");
$con = connectDb();
$db = SelectDB($con);


$username = $_REQUEST['uname'];
$password = $_REQUEST['pwd'];
$img= $_POST['image'];


// To protect MySQL injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$query = "SELECT * FROM user WHERE user_email ='".$username."' AND user_password='".$password."'";
$result = mysql_query($query);

$count=mysql_num_rows($result);
if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    createLoginSession($username,$password);
    include 'download.php';
    echo 'download';

}
else {
    echo "login";
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-09 08:47:56

尝尝这个,

AJAX

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "userLoginAction.php",
    data: {
        image: dataURL,
        uname:uname,
        pwd:pwd
    },
    success:function(data) {
        if (data == '**DOWNLOAD**') {
            alert('Download Completed');
        } else if (data == '**LOGIN**') {
            window.location.href = 'signup.php';
        }
    }
});

代码语言:javascript
复制
include("sessionHandler.php");
include("../connect.php");
$con = connectDb();
$db = SelectDB($con);


$username = $_REQUEST['uname'];
$password = $_REQUEST['pwd'];
$img= $_POST['image'];


// To protect MySQL injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$query = "SELECT * FROM user WHERE user_email ='".$username."' AND user_password='".$password."'";
$result = mysql_query($query);

$count=mysql_num_rows($result);
if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    createLoginSession($username,$password);
    include 'download.php';
    echo '**DOWNLOAD**';

}
else {
    echo "**LOGIN**";
}
票数 0
EN

Stack Overflow用户

发布于 2013-10-09 08:38:25

若要防止页面在Ajax调用后刷新,请在done函数中返回false。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19266832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档