我正在使用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>
答案 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;});