对Webservice的Ajax请求即使有效也会返回错误

时间:2016-09-28 17:00:55

标签: php jquery mysql ajax cordova

我有一个函数对php文件进行ajax调用,该文件应该在MySQL数据库中插入表单的某些字段。插入操作正常,但是当我在警报上打印响应时,该函数会返回上面的错误。有人能告诉我为什么会这样吗?

警告显示错误:

  

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.";
}

1 个答案:

答案 0 :(得分:1)

  1. 从if block&中删除行return $resultado;否则阻止

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