【问题标题】:Ajax request to Webservice returns error even though it works对 Web 服务的 Ajax 请求返回错误,即使它有效
【发布时间】:2017-02-06 19:00:51
【问题描述】:

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

警告显示错误:

回复:{"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!');
    }
});}

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

【问题讨论】:

  • 先看看这里:justinball.com/2013/02/25/…。第二:您的 PHP 代码将永远不会发送 json 响应,因为您返回 1 或 0,查询存在两次,并且,......以及另一个故事。

标签: php jquery mysql ajax cordova


【解决方案1】:
  1. 从 if 块和 else 块中删除行 return $resultado;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多