2016-09-28 5 views
0

У меня есть функция, которая делает вызов ajax в php-файл, который должен вставлять некоторые поля формы в базу данных MySQL. Операция вставки работает нормально, но функция возвращает мне ошибку выше, когда я печатаю ответ на предупреждение. Может ли кто-нибудь сказать мне, почему это происходит?Запрос Ajax для Webservice возвращает ошибку, даже если она работает

Ошибка отображается на предупреждение:

Ответ: При { "readyState": 0, "Статус": 0, "его статуса": "ошибка"}

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

Во-первых, посмотрите здесь: http://www.justinball.com/2013/02/25/jqxhr возвращающих-readystate-0-и-статус-0 /. Второй: ваш PHP-код никогда не отправит json-ответ, так как вы вернетесь 1 или 0, запрос существует два раза и ... и еще одна история. –

ответ

1
  1. Удалите строку return $resultado; из того, если блок & еще блок

    if ($res == true) 
    { 
        $resultado = 1; 
    
        return $resultado; //remove this line 
    } 
    
Смежные вопросы