SyntaxError: Unexpected end of JSON input

96 篇文章 2 订阅
35 篇文章 0 订阅

cause

以下为前端AJAX代码,用于删除后台用户数据。

$.ajax({
    method: "POST",
    url: "/DeleteUser",
    data: {
        id: row.id
    },
    success: function(data, textStatus, jqXHR) {
        console.log("删除成功");
        console.log("data", JSON.stringify(data));
        console.log("textStatus", textStatus);
        console.log("jqXHR", jqXHR);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("删除失败");
        console.log("jqXHR", jqXHR);
        console.log("textStatus", textStatus);
        console.log("errorThrown", errorThrown);
    },
    dataType: "json"
});

后端代码略。

但,数据库数据删除成功,前端却执行error方法。
在这里插入图片描述
原因:response中没有返回JSON数据。
在这里插入图片描述
HTTP请求的的状态码是200 OK,但响应没有数据(Content-Length: 0)。
没有JSON所以解析JSON出错,执行error回调。

resolve

在服务端代码中向响应添加数据即可。

response.setContenType("text/json; charset=UTF-8");	// 设置响应的内容类型和字符集
PrintWriter writer = response.getWriter();	// 必须先设置响应的内容类型和字符集之后,再获取响应对象writer。
response.write(JSON.toJSONString(object));	// object为写回的数据。用fastjson转换为JSON字符串。
writer.close();

至于不同情况下写回的数据是什么,由自己决定。

控制台日志:
在这里插入图片描述
HTTP请求和响应
在这里插入图片描述
响应数据预览
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值