Guilherme Ramalho Guilherme Ramalho - 2 months ago 7
Ajax Question

Ajax request to Webservice returns error even though it works

I have a function that makes an ajax call to a php file that should insert some fields of a form in a MySQL database. The insert operation works fine but the function returns me the error above when I print the response on an alert. Could someone tell me why does this happen?

Error shown on alert:


Resposta: {"readyState":0,"status":0,"statusText":"error"}


funcoes.js

function salvar(){
$.ajax({
type: 'POST',
dataType: 'json',
data: {operationType: 'insert', nome: $('#nome').val(), sobrenome: $('#sobrenome').val(), idade: $('#idade').val() },
url: 'http://localhost/projetos/wstest/cadastrar.php',
ContentType: 'application/json',
success: function(response){
alert('Resposta: '+JSON.stringify(response));
},
error: function(err){
alert('Resposta: '+JSON.stringify(err));
alert('Erro ao inserir registro!');
}
});}


cadastrar.php

include './conection.php';

header("Access-Control-Allow-Origin: *");

$link = conectar();

$nome = mysqli_real_escape_string($link, $_REQUEST['nome']);
$sobrenome = mysqli_real_escape_string($link, $_REQUEST['sobrenome']);
$idade = mysqli_real_escape_string($link, $_REQUEST['idade']);

$query = "INSERT INTO `usuario`(`nome`, `sobrenome`, `idade`) "
. "VALUES ('$nome','$sobrenome','$idade')";

$res = mysqli_query($link, $query);

if(isset($_POST['operationType']))
{

if ($_POST['operatioType'] == "insert")
{
$query = "INSERT INTO `usuario`(`nome`, `sobrenome`, `idade`) "
. "VALUES ('$nome','$sobrenome','$idade')";

$res = mysqli_query($link, $query);

if ($res == true)
{
$resultado = 1;

return $resultado;
}
else
{
$resultado = 0;

return $resultado;
}

echo json_encode($resultado);
}

else if($_POST['operationType'] == "login")
{

}
}
else
{
echo "Formato de requisição inválido! O aplicativo não conseguiu se comunicar "
. "de maneira correta com o servidor.";
}

Answer
  1. Remove the line return $resultado; from if block & else block

    if ($res == true) 
    {
      $resultado = 1;
    
      return $resultado; //remove this line
    } 
    
Comments