前端js:
function deleteFriendButton(event) {
// location.reload();
var fi = myFriends[event.currentTarget.index];
var req = new XMLHttpRequest();
req.index = event.currentTarget.index;
req.onreadystatechange = function (e) {
if (e.currentTarget.readyState == 4) {
console.log(e.target.responseText)
var result = JSON.parse(e.currentTarget.responseText);
if (result.err == 0) {
var div = divs[e.currentTarget.index];
div.parentElement.removeChild(div);
} else {
alert(result.msg);
}
}
}
req.open("POST", "/deleteFriend");
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("id=" + fi.id);
}
nodejs:
app.post("/deleteFriend", upload.array, function (req, res) {
var fi = null;
for (var i = 0; i < friends.myFriends.length; i++) {
if (friends.myFriends[i].id == req.body.id) {
fi = i;
break;
}
}
if (fi == null) {
res.send("{err:1,'msg':'没有该好友'}");
} else {
friends.myFriends.splice(fi, 1);
res.send("{err:0,'msg':'该好友已删除'}");
}
})
为什么报错:JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
求大神解答
json 格式不对,err
要加引号
err加上引号,upload.array也加上括号了,虽然效果能实现,服务器不报错,但是浏览器报错了是什么情况?而且服务器的数据并没有被删除.
@有点小九九: 浏览器报什么错?
@dudu: Uncaught SyntaxError: Unexpected token ' in JSON at position 1
at JSON.parse (<anonymous>)
at XMLHttpRequest.req.onreadystatechange
因为我没有开通博客,没办法上传图片,只能这样了,抱歉啊
@有点小九九: 正确的 json 写法是 {"err":0,"msg":"该好友已删除"}
,要用双引号
@dudu: 我用的编译软件不支持双引号里面再加双引号,或者可以说是单引号可以代替双引号,
@有点小九九: 这样写也不行吗?
res.send("{\"err\":0,\"msg\":\"该好友已删除\"}");
@dudu: 可以了,谢谢大神
@有点小九九: 也可以这样写
res.send('{"err":0,"msg":"该好友已删除"}');
@dudu: 嗯嗯,我试了,可以的,谢谢