php - 使用 Ajax 和服务器 MySQL 开发 Phonegap 中的登录页面

标签 php javascript ajax json cordova

我已经被这个问题困扰好几天了。我使用 Ajax 组 Web 开发技术从服务器调用 php 文件。看来成功方法没有被调用。这是我的代码:

function handleLogin() {
var form = $("#loginForm");    
//disable the button so we can't resubmit while we wait
//$("#submitButton",form).attr("disabled","disabled");
var e = $("#email", form).val();
var p = $("#password", form).val();

console.log("click");
if(e != "" && p != "") {
    //var str = form.serialize();
    //alert(str);
    $.ajax({ 
                     type: 'POST', 
                     url: 'http://prefoparty.com/login.php', 
                     crossDomain: true,
                     data:  {email: e, password :p},
                     dataType: 'json', 
                     async: false,

                     success: function (response){ 
                        alert ("response"); 
                        if (response.success) { 
                            alert("you're logged in");
                            window.localStorage["email"] = e;
                            window.localStorage["password"] = md5(p); 
                            //window.localStorage["UID"] = data.uid;           
                            window.location.replace(main.html);
                        } 
                        else {

                            alert("Your login failed");
                            //window.location("main.html");
                        }


                     },
                     error: function(error){
                         //alert(response.success);
                        alert('Could not connect to the database' + error);
                        window.location = "main.html";
                    }
    }); 
}
else {
    //if the email and password is empty
    alert("You must enter email and password");

}
return false;
}

在 php 中,我使用了典型的 MySQL 调用,并从 Google Chrome 浏览器运行此文件。它正确返回了 JSON。这是我的 php:

            <?php
            require_once('includes/configinc.php');

            $link = mysql_connect(DB_HOSTNAME, DB_USERNAME,DB_PASSWORD) or die("Could not connect to host.");
            mysql_select_db(DB_DATABASE, $link) or die("Could not find database.");

            $uname = $_POST['email'];
            $password = $_POST['password'];



            $sql = "SELECT * FROM User_Profile WHERE Email = '$uname' AND Password = 'md5($password)'";
            $result=mysql_query($sql);
            $num_row = mysql_num_rows($sql);
            $row=mysql_fetch_array($result);


            if (is_object($result) && $result->num_rows == 1) {
            $response['success'] = true;

            }
            else
            {
            $response['success'] = false;
            }

            echo json_encode($response);

             //echo 'OK';

            ?>

请检查我的代码并指出我哪里做错了。

提前谢谢大家:)

最佳答案

添加

 header("access-control-allow-origin: *") 

置顶你的PHP页面将解决你的跨域请求访问问题

关于php - 使用 Ajax 和服务器 MySQL 开发 Phonegap 中的登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053280/

相关文章:

ajax - 为什么 <c :forEach> not working with Ajax request in JSP Spring?

php - 使用 fputcsv 从多维数组创建 CSV

php - 在提交时回显 php div

php - Laravel 数据库连接 : Selecting from database name in snake case

javascript - MongoDB Stitch SDK 返回 "aggregation stage "$lookup“不支持”

javascript - 出现与切换按钮的 JS 相关的错误

javascript - 使用 jQuery 获取花括号中的无效 HTML 代码

javascript - 尝试使用 jQuery.post() 调用 PHP 函数

php codeigniter 计算行数

javascript - 成功发布后无法访问 $_POST 数据