2016-05-25 57 views
1

我正在開發一個帶有PhoneGap的Andorid應用程序,我正在嘗試進行身份驗證。我有一個HTML文件的簡單形式,在活動中點擊一個JS文件前人的精力啓動激活了autentication遠程服務器上的PHP文件中的阿賈克斯,這裏是JS:使用Ajax的PhoneGap身份驗證

$("#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 *" />

​​3210

<?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

請同時發佈您的config.xml和index.html的''部分,特別是內容安全策略元標記。這些的正確配置可能是一個因素。 –

+0

@MarcoCuccagna編輯您的文章與此信息 – piterio

回答

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;}); 
+0

我試過了,但結果是一樣的,控制檯說,它無法找到jquery腳本,但鏈接是正確的 –

+0

@MarcoCuccagna你應該嘗試使用另一個URL。我的控制檯說: 'XMLHttpRequest無法加載http://%40 @ /。只有協議方案支持跨源請求:http,data,chrome,chrome-extension,https,chrome-extension-resource.'您可以搜索關於此錯誤的一些信息 – piterio

1

顯然,這是一個安全問題,如果我在一個遠程服務器上運行它,它是顯示一個XMLHttpRequest的問題:「跨起源請求只支持協議方案:HTTP,數據,鍍鉻,鍍鉻-extension,https,chrome-extension-resource,「。 如果我通過phonegap開發人員工具運行它。