2016-05-25 13 views
1

私はPhoneGapでAndoridアプリケーションを開発しています。私は認証をしようとしています。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ファイル:私はここにJSで、autentication用のリモートサーバーでのPHPファイルをアクティブアヤックスを開始souldイベントクリックするだけでJSファイルで、HTMLファイル内の簡単なフォームを持っています単純なエコー "成功"です。 私はそれを実行すると、それは機能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の ''セクション、特にContent-Security-Policyメタタグを投稿してください。これらの正しい構成は、ここでの要因かもしれません。 –

+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 @を読み込めません。 Cross originリクエストは、http、data、chrome、chrome-extension、https、chrome-extension-resourceのプロトコルスキームでのみサポートされています。このエラーに関する情報を検索できます – piterio

1

私はそれはXMLHttpRequestの問題ショーのリモートサーバでそれを実行する場合どうやらそれは、セキュリティ上の問題だ:「クロスオリジンリクエストは唯一のプロトコルスキームでサポートされています:http、データ、クロム、クロム-extension、https、chrome-extension-resource」を参照してください。 私はphonegap開発者ツールを介してそれを実行する場合、それは動作します。