2016-09-28 62 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

首先刪除線return $resultado;看看這裏:http://www.justinball.com/2013/02/25/jqxhr-返回-readyState的-O-和狀態-0 /。第二:你的PHP代碼將永遠不會發送一個JSON響應,因爲你返回1或0,查詢存在兩次,而且......好了另一個故事。 –

回答

1
  1. 從if塊&封鎖其他

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