Ajax запрос в кордове не работает

Я использую ajax-запрос к php-скрипту, чтобы зарегистрировать нового пользователя, он работает и сохраняет его в базе данных, но возвращает как ошибку, а не как успех.

Это мой запрос AJAX:

$.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
crossDomain: true,
cache: false,
success: function (data) {
if (data == 1)
alert("success");

else(data == 0 )
alert("error");

},
error: function (){
alert("An Error Ocurred");
}});

и это мой скрипт php:

if($_POST)
{
$user_name      = $_POST['username'];
$user_password  = $_POST['password'];
$joining_date   = date('Y-m-d H:i:s');

//password_hash see : http://www.php.net/manual/en/function.password-hash.php
$password   = password_hash( $user_password, PASSWORD_BCRYPT, array('cost' => 11));//if($count==0){
$stmt = $db_con->prepare("INSERT INTO users(username,password,joiningdate) VALUES(:uname,:pass,:jdate)");
$stmt->bindParam(":uname",$user_name);
$stmt->bindParam(":pass",$user_password);
$stmt->bindParam(":jdate",$joining_date);

if($stmt->execute())
{
echo 1;

}
else
{
echo 0;

}

}

0

Решение

заменить else (данные == 0) на else

 $.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
crossDomain: true,
cache: false,
success: function (data) {
if (data == 1)
alert("success");

else
alert("error");

},
error: function (){
alert("An Error Ocurred");
}});

и в коде PHP

if($stmt->execute())
{
exit(1);

}
else
{
exit(0);

}
0

Другие решения

Вы можете проанализировать ответ PHP в JSON, чтобы проверить результат из JS.

Ответ PHP:

if ($stmt->execute()) {
die(json_encode(['return' => true]));
} else {
die(json_encode(['return' => false]));
}

А из JS просто проверьте return флаг:

$.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
dataType: 'JSON', // tell JS that the PHP response is json formated
crossDomain: true,
cache: false,
success: function (data) {
if (data.return) { // check if return is true
alert("success");
} else { // if return is false
alert("error");
}
},
error: function (jqXHR, textStatus, errorThrown){
console.log(textStatus, errorThrown); // this will tell you more in case of unsuccessful request
}
});

Надеюсь, поможет.

РЕДАКТИРОВАТЬ :

Посмотри на Аякс error функция атрибута. Он должен рассказать вам больше об ошибке.

РЕДАКТИРОВАТЬ:

dataString Вы отправляете в PHP должен быть объект JSON. Так что из вашего комментария это должно выглядеть так:

var dataString = {
username: $("#username").val(),
password: $("#password").val()
};
0

Что касается моего вопроса, который я задал пару дней назад об ajax, я обнаружил, что если я удаляю тег формы из файла html, он работает просто отлично, и это возвращает функцию обратного вызова. Спасибо всем за ваши усилия в попытке помочь

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector