Javascript 未捕获的语法错误:JSON中位于JSON.parse(<;anonymous>;)位置0处的意外标记a

Javascript 未捕获的语法错误:JSON中位于JSON.parse(<;anonymous>;)位置0处的意外标记a,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我知道有这么多的问题,但很抱歉我真的混淆了这个错误 我创建了一个登录页面,并在POST请求中使用了ajax。当我使用这个页面时会发生什么 $.ajax({ url:'../ajax/checklogin.php', type:'POST', dataType:'JSON', data:$('form').serialize(), success: function(result){ $.post("../www/login.php",{ users_id: JSON.par

我知道有这么多的问题,但很抱歉我真的混淆了这个错误

我创建了一个登录页面,并在POST请求中使用了ajax。当我使用这个页面时会发生什么

$.ajax({
 url:'../ajax/checklogin.php',
 type:'POST',
 dataType:'JSON',
 data:$('form').serialize(),   
  success: function(result){
  $.post("../www/login.php",{ users_id: JSON.parse(result.users_id)}).done(window.location.href='../www/index.php');
  }
});
$.post
正在运行,但当我尝试添加另一个字段进行分析时,出现了此错误。。此错误是在用户\u处于活动状态时发生的。。由于某种原因,我不知道我为什么会出错

$.post("../www/login.php",{ users_id: JSON.parse(result.users_id),users_active: JSON.parse(result.users_active)}).done(window.location.href='../www/index.php');
另一个字段很好,但唯一给我错误的字段是users\u active。。我甚至检查返回的json数组,它们是有效的json…

json.parse()
获取一个字符串并将其转换为一个JavScript对象

幸运的是,
JSON.parse(“12345”)
可以转换为
新数字(“12345”)
,这确实是一个整数

result.users\u active
已经是一个JavaScript对象(或数组)或一个字符串,它不代表JSON对象,因此解析将导致语法错误,如中所述

我假设您需要
JSON.stringify()
,但为了确保这一点,您应该发布一些代码或结果对象。


编辑:现在我已经看到了对象,
“active”
是一个简单的字符串,您不能去掉引号。因此,只需使用
users\u active:result.users\u active

JSON.parse不会删除引号(“),而是将数据转换为对象、布尔值或字符串-如果它们以前是有效的JSON(而不仅仅是您传递的属性值)。请参见此处:

如果您想确保将整数或字符串(或任何您需要的内容)传递给ajax帖子,只需使用适当的javascript函数,如parseInt()或String()

请参见以下数据示例:

var result = {
  "id":"26",
  "users_id":
  "201710001",
  "users_username":"123",
  "users_active":"active"
  };

$.post("../www/login.php", { 
    users_id: parseInt(result.users_id),
  users_active: String(result.users_active) 
  }).done(window.location.href='../www/index.php');

为什么
JSON.parse()
result
应该已经是一个对象我使用parse的原因是删除“”使其成为一个字符串。如果我控制台
console.log(JSON.parse(result.users_active));
我得到了错误标题,但当我控制台
console.log(JSON.parse(result.users_id))时,用户id除外
而不是获取
“12345”
结果是
12345
,这就是我使用parse删除“”以使其成为普通字符串的原因。您可以向我们显示
结果的内容吗?(
控制台.log(result);
{id:“26”,“users\u id:“201710001”,“users\u username:“123”,“users\u active:“active”}
这是控制台的结果。log
我刚删除了一些字段,当我尝试使用JSON.stringify(result.users\u active)时,结果是“active”,但我想要的是删除那些双qoute…有没有办法删除它们?。我使用JSON.parse的原因是删除那些双qoute,而不是生成“12345”“它给我12345。。。。没有双qoute..只能从数字或布尔值中去掉引号<代码>“active”是一个字符串,没有引号就不能存在,因为它是对名为
active
的变量的引用。。因为当我搜索如何删除那些qoute时,它说使用JSON.parse删除它,所以这就是我使用它的原因。。对不起,我对使用json还不太熟悉。。所以我知道它是怎么工作的。。谢谢你的信息…哦,伊塞。。因为当我搜索如何删除那些qoute时,它说使用JSON.parse删除它,所以这就是我使用它的原因。。对不起,我对使用json还不太熟悉。。所以我知道它是怎么工作的。。谢谢你的信息