javascript - Jquery + Ajax,Params有数据但响应说没有数据

标签 javascript php jquery ajax asynchronous

我有以下脚本:

$("#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.");
       }
   }); 
});

Note: #sponname is a label tag.

以下是getsponsor.php的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");
    }
}

当我检查页面并转到网络->参数时,我从文本框中获得了正确的值:

spid=1125468

但是,当我转到网络->响应时,我收到以下消息

"No Data"

请告诉我我做错了什么?

最佳答案

去掉这一行:

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

数据以 URL 编码形式发送,而不是以 JSON 形式发送。 jQuery 将自行发送正确的 Content-type header 。

关于javascript - Jquery + Ajax,Params有数据但响应说没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52111576/

相关文章:

jquery - 在 Firefox 上开发的 Javascript 在 IE 上失败的典型原因是什么?

javascript - 如何将类应用于动态插入的 html 元素?

单击时停止的 Javascript 发光/脉动效果

javascript - 如何使用 JavaScript 函数验证单选按钮?

php - 如何使用 PHP 清理标题 URI?

javascript - 将html图像标签存储在数据库中

javascript - PHP/Ajax/JQuery 响应无法正常工作

jquery - 在 Bootstrap 中添加滚动时导航链接不活动

javascript - 使用 Javascript/KendoUI 自动完成呈现数据时出错 - 对象 #<Object> 没有方法 'slice' - 如何解决?

javascript - 查找历史雅虎财经报价