2016-01-20 88 views
0

嗨,我正在使用英特爾xdk開發混合應用程序。在那裏我創建了註冊表單,然後我在那裏輸入代碼。在im嘗試使用Php Mysql將我的數據庫插入到我的數據庫之後。Intel xdk Databse

如果我點擊註冊按鈕它顯示這樣的錯誤[不能POST/HTTP服務/模擬器Web服務器/紋波/ userapp/xC /用戶/系統-5 /應用程序數據/本地/ XDK/xdk-scratchdir/8167921a- fe37-4721-a49c-7e81a19997af /平臺/安卓/資產/ WWW/index.html的]

我的HTML代碼:

<form method="post" action="registration.php"> 

<input name="username" type="text" placeholder="Username" id="name" /> 
<input name="password" type="password" placeholder="Password" id="password" /> 
<input name="confirmpassword" type="password" placeholder="Confirm Password" id="confirmpassword" /> 
<input name="email" type="text" placeholder="Email" id="email" /> 
<input name="phonenumber" type="text" placeholder="Phone number" id="phonenumber" /> 
<input name="submit" type="submit" value="Register"/> 

</form> 

我的Javascript代碼:

function signUp(){ 
    var credsArr = {}; 
    credsArr["username"] = document.myform.username.value; 
    credsArr["password"] = document.myform.password.value; 
    credsArr["email"] = document.myform.password.value; 
    credsArr["phonenumber"] = document.myform.password.value; 
    var xmlhttp = new XMLHttpRequest(); 
    var url = "http://127.0.0.1:58889/phonegap/registration.php?username=" + credsArr["username"] + "&password=" + credsArr["password"] + "&email="+credsArr["email"] + "&phonenumber="+ credsArr["phonenumber"]; 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      myFunction(xmlhttp.responseText); 
     } else if (xmlhttp.status == 404) { 
      intel.xdk.notification.alert("Web Service Doesn't Exist!", "Error"); 
     } 
    }; 
    xmlhttp.open("POST", "http://127.0.0.1:58889/phonegap/registration.php", false); 
    xmlhttp.send(); 
    function myFunction(response) { 
     var arr = JSON.parse(response); 
     if (arr.success == 1) { 
      intel.xdk.notification.alert("Registered successful!"); 
     } else { 
      intel.xdk.notification.alert(arr.success + " " + arr.message); 
     } 
    } 
    return(true); 

} 
+0

在Web服務器上安裝PHP? –

+0

是的,我在我的服務器上安裝了php –

回答

-1

人們一直有麻煩製作ajax調用,嘗試使用jQuery 2.

jQuery 1庫似乎與最新版本的cordova-android框架不兼容。要解決這個問題,您可以將jQuery庫升級到jQuery 2,或使用類似於以下測試代碼片段中顯示的技術來檢查您的AJAX返回碼。

編輯:

注意,特別是用於檢查零和200這個測試片段中的開關情況並未涵蓋所有可能的AJAX返回代碼,而是應該幫助你,如果你想繼續使用一個jQuery 1庫作爲您的Cordova應用程序的一部分。

例子:`函數jqueryAjaxTest(){

/* button #botRunAjax */ 
$(document).on("click", "#botRunAjax", function (evt) { 
    console.log("function started"); 
    var wpost = "e=132&c=abcdef&s=demoBASICA"; 
    $.ajax({ 
     type: "POST", 
     crossDomain: true, //;paf; see http://stackoverflow.com/a/25109061/2914328 
     url: "http://your.server.url/address", 
     data: wpost, 
     dataType: 'json', 
     timeout: 10000 
    }) 
    .always(function (retorno, textStatus, jqXHR) { //;paf; see http://stackoverflow.com/a/19498463/2914328 
     console.log("jQuery version: " + $.fn.jquery) ; 
     console.log("arg1:", retorno) ; 
     console.log("arg2:", textStatus) ; 
     console.log("arg3:", jqXHR) ; 
     if(parseInt($.fn.jquery) === 1) { 
      switch (retorno.status) { 
       case 0: 
       case 200: 
        console.log("exit OK"); 
        console.log(JSON.stringify(retorno.responseJSON)); 
        break; 
       case 404: 
        console.log("exit by FAIL"); 
        console.log(JSON.stringify(retorno.responseJSON)); 
        break; 
       default: 
        console.log("default switch happened") ; 
        console.log(JSON.stringify(retorno.responseJSON)); 
        break ; 
      } 
     } 
     if((parseInt($.fn.jquery) === 2) && (textStatus === "success")) { 
      switch (jqXHR.status) { 
       case 0: 
       case 200: 
        console.log("exit OK"); 
        console.log(JSON.stringify(jqXHR.responseJSON)); 
        break; 
       case 404: 
        console.log("exit by FAIL"); 
        console.log(JSON.stringify(jqXHR.responseJSON)); 
        break; 
       default: 
        console.log("default switch happened") ; 
        console.log(JSON.stringify(jqXHR.responseJSON)); 
        break ; 
      } 
     } 
     else { 
      console.log("unknown") ;   
     } 
    }); 
}); 

}`

有關此主題的點擊here

1

英特爾XDK將在jQuery庫拉更多的信息。

您的Web服務調用改成這樣:

var url = "http://127.0.0.1:58889/phonegap/registration.php"; 

    var JSONObject= { 
     "username":credsArr["username"], 
     "password":credsArr["password"], 
     "email:":credsArr["email"], 
     "phonenumber:":credsArr["phonenumber"], 
    }; 

    $.ajax({ 
     url: url, 
     type: 'GET', 
     data: JSONObject, 
     dataType: 'json', 
     contentType: "application/json; charset=utf-8", 
     success: function (arr) { 
      //do something 
     }, 
     error: function() { 
      //do something 
     } 
    });