Jquery + Ajax, у Params есть данные, но в ответе нет данных - PullRequest
0 голосов
/ 31 августа 2018

У меня есть следующий скрипт:

$("#spid").blur(function() {
    $.ajax({
       url: 'getsponsor.php',
       type: "POST",
       dataType:'json',
       data: ({ spid: $("#spid").val() }) ,
       contentType: 'application/json; charset=utf-8',
       success: function (result) {
           $("#sponname").text(result);
       },
       error: function () {
           $("#sponname").text("Cannot fetch the sponsor name.");
       }
   }); 
});

Примечание: #sponname является тегом метки.

Ниже приведен php-код getsponsor.php:

if(!isset($_POST['spid']) || empty($_POST['spid']))
    echo json_encode("No Data");
else {
    $spid=$_POST['spid'];
    $stmt = $con->prepare("SELECT name FROM users WHERE id=?");
    $stmt->bind_param("s",$spid);
    $stmt->execute();
    $stmt = $stmt->get_result();
    if ($stmt->num_rows >0) {
        $row = $stmt->fetch_object();
        echo json_encode($row->name);
    }
    else {
        echo json_encode("No Records");
    }
}

Когда я проверяю страницу и иду Сеть-> Параметры , я получаю правильное значение из текстового поля:

спид = 1125468

Но когда я захожу на Сеть-> Ответ , я получаю следующее сообщение

"Нет данных"

Скажите, пожалуйста, что я не так делаю?

1 Ответ

0 голосов
/ 31 августа 2018

Избавьтесь от этой строки:

contentType: 'application/json; charset=utf-8',

Данные отправляются в кодировке URL, а не в формате JSON. jQuery сам отправит правильный заголовок Content-type.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...