2016-11-20 127 views
1

的JavaScript登录使用phpmysql

<script type="text/javascript"> 
$(document).ready(function() 
{ 
$("#insert").click(function(){ 
var email=$("#email").val(); 
var pass=$("#pass").val(); 
var dataString="email="+email+"&pass="+pass+"&insert="; 
if($.trim(email).length>0 & $.trim(pass).length>0) 
{ 
$.ajax({ 
type: "POST", 
url:"http://www.gaurav2444.5gbfree.com/login.php", 
data: dataString, 
crossDomain: true, 
cache: false, 
beforeSend: function(){ $("#insert").val('Connecting...');}, 
success: function(data){ 
if(data=="success") 
{ 
alert("successful"); 
localStorage.login="true"; 
localStorage.email=email; 
window.location.href = "index.html"; 
} 
else if(data=="error") 
{ 
alert("error"); 
$("#insert").val('Login'); 
} 
} 
}); 
}return false; 
}); 
}); 
</script> 

PHP的: 的login.php

<?php 
include "db.php"; 
if(isset($_POST['insert'])) 
    { 
$email=$_POST['email']; 
$pass=$_POST['pass']; 
$sql = "SELECT * from `course_details` where `email`='$email' and `pass`='$pass'"; 
$result = mysqli_query($con, $sql); 

if (mysqli_num_rows($result) > 0) 
{ 
echo "success"; 
} 
else 
{ 
    echo "error"; 
} 
} 
?> 

db.php中

<?php 
header("Access-Control-Allow-Origin: *"); 
$con = mysqli_connect("localhost:3306","","","gaurav_sos") or die ("could not connect database"); 
?> 

计划行之有效XAMPP服务器上,但是当PHP文件和数据库托管它不适用于科尔多瓦应用程序。 例如,当登录页面中输入以下登录ID和密码时,whwn文件位于xampp服务器中,它可以很好地工作,但是当php文件和数据库托管并且从cordova应用程序调用php文件时,它不会给出任何结果。 登录ID:[email protected] 密码:123

+0

看看服务器日志! – ventiseis

回答

1

...这是AJAX跨域请求正常行为 - 它不matther你手动设置Access-Control-Allow-Origin头。

为了你的代码工作,你必须使用某种形式的代理,因为CORS policy禁止AJAX请求(因为它们违反same-origin security policy),这样可以使跨域AJAX请求从第三方获取资源网站当不可能在目标网站上启用CORS时,即你不拥有那个网站。

例如,您可以通过AJAX先拨打PHP cross-domain proxy,然后将您的请求转发给真实服务器。

一个简单的代码修改使用PHP跨域代理库:

$.ajax({ 
    type: "POST", 
    url:"proxy.php", //This is where PHP cross-domain proxy is located 
    csurl: "http://www.gaurav2444.5gbfree.com/login.php" //Your remote server 
    });