Javascript 将contentType设置为application/json时出现未指定的令牌错误
我正在使用AJAX POST发送数据。数据是JSON格式的。见下文。然而,我不断得到“JSON中位置0处的意外标记u”。为什么会这样?我在这里设置contentType的原因是,选中的布尔字段Javascript 将contentType设置为application/json时出现未指定的令牌错误,javascript,ajax,rest,post,content-type,Javascript,Ajax,Rest,Post,Content Type,我正在使用AJAX POST发送数据。数据是JSON格式的。见下文。然而,我不断得到“JSON中位置0处的意外标记u”。为什么会这样?我在这里设置contentType的原因是,选中的布尔字段不会转换为字符串 var data = { "user": "tom", "number": 9, "checked": false } $.ajax({ url: url, method: "POST", data: data, contentType: 'a
不会转换为字符串
var data = {
"user": "tom",
"number": 9,
"checked": false
}
$.ajax({
url: url,
method: "POST",
data: data,
contentType: 'application/json',
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
},
success: function (success) {
console.log("success");
}
});
当您使用contentType:'application/json',
时,您需要自己对数据进行字符串化:
data: JSON.stringify(data),
至于错误,这似乎是一个响应问题。检查浏览器开发工具网络中的实际请求,查看响应正文中实际包含的内容从何处获取错误?当javascript运行或您收到答案时?@liorahaydon以前我没有contentType:'application/json'
,后端将布尔值视为字符串,因此我认为应该设置它以避免此问题。我这样做了,现在它甚至不会被发送到后端服务器引用的错误将发生在服务器端(可能随后会包含在响应中),因为服务器接收的数据是user=tom&number=9&checked=false
,所以请求正文中的第一个字符是“user”中的“u”显然,这不能被解析为JSON。