的javascript
<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>
腓: 的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文件和数据库时,它无法在cordova应用程序上运行。 例如,当登录页面中输入以下登录ID和密码时,whwn文件位于xampp服务器中,它可以正常工作,但是当托管php文件和数据库并且从cordova应用程序调用php文件时,它不会给出任何结果。 登录ID:hero@d.com 密码:123
答案 0 :(得分:1)
...这是AJAX跨域请求的正常行为 - 不能您手动设置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
});