Почему Ajax отправляет объект в Response? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть очень простой скрипт на php, который подходит для отправки запроса в ajax и возврата строки, которую я помещаю в файл .php, но когда запрос отвечает, он отправляет объект вместо строки.Я не знаю, почему это происходит, потому что я уже сделал это так же, как обычно и прекрасно работает.

это форма, которая отправляет запрос

<form method="POST" id="personForm">
    <div class="form-group col-md-6">
        <label for="NameInput">Name</label>
        <input type="text" name="name" class="form-control" id="NameInput">
    </div>
    <div class="form-group col-md-6">
        <label for="lNameInput">Last Name</label>
        <input type="text" name="lastname" class="form-control" id="lNameInput">
    </div>
    <input type="button" name="Send" class="btn btn-info" onclick="ajaxRequest($('#NameInput').val(), $('#lNameInput').val())" value="Send">
</form>
<hr>
<div id="result">

</div>

Это скрипт, который отправляетзапрос ajax

function ajaxRequest(name, lastn) {

   var params = {
      "name" : name,
      "lastn" : lastn
      };

      $.ajax({
        url: './process/resquestAjax.php',
        method: 'POST',
        data: params,
        beforeSend: function() {

          $('#result').html('<p>Procesando Peticion...</p>');

        },
        complete: function(completeResult) {

          $('#result').html(completeResult);

        },
        sucess: function(successResult) {

        },
        error: function(jqXHR,estado,error){
          alert('There was an error!: '+estado+' name-> '+error+' otro-> '+jqXHR);
          alert("Please contact support ias soon as posible...!");
        }
       }); // End Ajax Call
}

и php-файл - это просто

$nombre   = $_POST['name'];
$apellido = $_POST['lastname'];

echo "¡Hello! your name is : ". $nombre ." and your last name: ". $apellido;

Я не знаю, почему я не получаю строку этого эха в ответ на ajax.вместо этого он отправляет объект.Я пытаюсь сделать другой проект с базой данных с этим, но у меня та же проблема.

1 Ответ

3 голосов
/ 24 сентября 2019

См. документацию .Вы используете обратный вызов complete, который получает объект jqXHR в качестве первого аргумента.

Вместо этого вы хотите использовать success (два c s, примечание), а не complete, если вы хотите использовать возвращенные данные.success получает данные в качестве первого аргумента.(Вы можете также использовать complete для удаления текущего сообщения и т. Д.)

Так, например:

function ajaxRequest(name, lastn) {
    var params = {
        "name" : name,
        "lastn" : lastn
    };

    $.ajax({
        url: './process/resquestAjax.php',
        method: 'POST',
        data: params,
        beforeSend: function() {
            $('#result').html('<p>Procesando Peticion...</p>');
        },
        complete: function(completeResult) {
            // If you wanted to do something whether the request
            // succeeded or failed, you'd do it here. Otherwise,
            // remove this handler.
        },
        success: function(successResult) {
            $('#result').html(successResult);
        },
        error: function(jqXHR,estado,error){
            alert('There was an error!: '+estado+' name-> '+error+' otro-> '+jqXHR);
            alert("Please contact support ias soon as posible...!");
        }
    }); // End Ajax Call
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...