使用Ajax进行PhoneGap身份验证

时间:2016-05-25 16:46:21

标签: javascript php ajax cordova login

我正在使用PhoneGap开发一个Andorid应用程序,我正在尝试进行身份验证。我在一个HTML文件中有一个简单的表单,在一个JS文件中,在事件点击时可以启动Ajax,激活远程服务器中的PHP文件以进行身份​​验证,这里是JS:

$("#login").click(function(){
var username=$("#username").val();
var password=$("#password").val();
var dataString="username="+username+"&password="+password;

   $.ajax({
        type: "POST",
        url: "http://@@##.altervista.org/test.php",
        data: dataString,
        beforeSend: function(){ $("#login").html('Connecting...');},
        success: function(responce){
            if(responce=='success')
            {
                localStorage.login="true";
                localStorage.username=username;
                window.location.href = "index.html";
            }
            else
            {
                alert("Login error");
                $("#login").html('Login');
            }
        }
    });
return false;});

PHP文件是一个简单的回声"成功"。 当我运行它时,它仍然停留在函数beforeSend

security-policy

<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *" />

config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>Hello World</name>
    <content src="index.html" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="14" />
    <plugin name="cordova-plugin-battery-status" source="npm" spec="~1.1.1" />
    ****some plugin, icon and splash that i need***    
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <engine name="android" spec="~5.1.1" />
</widget>

2 个答案:

答案 0 :(得分:1)

显然这是一个安全问题,如果我在远程服务器上运行它会显示xmlhttprequest问题:“只有协议方案支持交叉源请求:http,数据,chrome,chrome扩展,https,chrome-extension-资源“。 如果我通过phonegap开发人员工具运行它可以工作。

答案 1 :(得分:0)

控制台中是否有任何错误?您可以转到“网络”部分,查看要发送的请求。但试试这个:

$("#login").click(function(){
var username=$("#username").val();
var password=$("#password").val();
var dataString="username="+username+"&password="+password;

   $.ajax({
        type: "POST",
        url: "http://@@##.altervista.org/test.php",
        data: {username: username, password: password},
        beforeSend: function(){ $("#login").html('Connecting...');},
        success: function(responce){
            if(responce=='success')
            {
                localStorage.login="true";
                localStorage.username=username;
                window.location.href = "index.html";
            }
            else
            {
                alert("Login error");
                $("#login").html('Login');
            }
        }
    });
return false;});