语法错误:在 ajax 请求上位置为 1 的 JSON 中出现意外的标记 o



>我让 Ajax 调用我的代码看起来像这样

var Data = {
name              : $('input[name=name]').val(),
email             : $('input[name=email]').val(),
phoneno           : $('input[name=phoneno]').val(),
password          : $('input[name=password]').val(),
};
var data = JSON.stringify(Data);
$.ajax({
url: "/registeruser",   
type: "POST",      
data:  data,      
dataType: 'json',
contentType: 'application/json',
success: function(response)   // A function to be called if request succeeds
{
console.log('responsee........', response);
},
error: function(jqXHR, textStatus, errorMessage) {
console.log('handle errpe message',errorMessage); // Optional
},
});

我在服务器端收到错误 nodejs
语法错误:位置 1 的 JSON 中出现意外的标记 o

我的快递路线代码

exports.registeruserController = function(req,res,next){
console.log('sdasdasdasdasd');
console.log('request of the user to register',req.body);
}

>data不是JSON。

它是一个隐式转换为字符串的对象:

var data = { for: "example" };
var what_you_are_sending = "" + data;
console.log(what_you_are_sending);

服务器正在尝试将其解析为 JSON。[是数组的开头。o是一个错误。然后它停止了。


您需要使用JSON.stringify将对象转换为 JSON。

var data = JSON.stringify({ for: "example" });
var what_you_should_send = "" + data;
console.log(what_you_should_send);

要解决问题,只需使用。

JSON.stringify(res.data)

最新更新