Javascript 将contentType设置为application/json时出现未指定的令牌错误

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

我正在使用AJAX POST发送数据。数据是JSON格式的。见下文。然而,我不断得到“JSON中位置0处的意外标记u”。为什么会这样?我在这里设置contentType的原因是,选中的布尔字段
不会转换为字符串

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。