2016-01-20 4 views
0

Эй, я разрабатываю гибридное приложение с помощью Intel xdk. В том, что я создал регистрационную форму, я установил коды там. После im попытайтесь вставить мою базу данных в мою базу данных, используя Php Mysql.Intel xdk Databse

Если я нажму кнопку регистрации, то появится ошибка, подобная этому [Can not POST/http-services/emulator-webserver/ripple/userapp/xC/Users/System-5/AppData/Local/XDK/xdk-scratchdir/8167921a- fe37-4721-a49c-7e81a19997af/платформы/Android/активы/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

установлен ли PHP на веб-сервере? –

+0

Да, я установил php на свой сервер –

ответ

-1

Люди были с проблема с вызовом ajax, Попробуйте использовать jQuery 2.

Библиотека jQuery 1 представляется несовместимой с новейшими версиями кордовой андроидной структуры. Чтобы исправить эту проблему, вы можете либо обновить библиотеку jQuery до jQuery 2, либо использовать технику, аналогичную той, которая показана в следующем фрагменте тестового кода, чтобы проверить коды возврата AJAX.

EDIT:

Обратите внимание, в частности, случай, переключатель, который проверяет на ноль и 200. Этот тест фрагмент не охватывает все возможные AJAX коды возврата, но должно помочь вам, если вы хотите продолжать использовать библиотека jQuery 1 как часть вашего приложения Кордовы.

Пример: `Функция 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

Intel XDK будет тянуть в библиотеке Jquery.

Изменение вызова веб-службы к этому:

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