2016-11-20 314 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 
    });