JSON.parse() 在 Linux 和 Mac 上不起作用

Posted

技术标签:

【中文标题】JSON.parse() 在 Linux 和 Mac 上不起作用【英文标题】:JSON.parse() does not work on Linux and Mac 【发布时间】:2022-01-24 04:37:40 【问题描述】:

我收到来自后端的 json 响应,需要在前端解析 json。 这是我的代码:

this.on("success", function(file, response, action) 
                
                response = JSON.parse(response);      
                console.log(response.id);               
                
            );  

运行代码时,它说如下。

 Uncaught SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)

注意:代码在 Windows 上运行良好,这里是响应。

message: 'Uploaded successfully...', id: 'a690d9b3-4f1e-48a0-83ac-42a2ea7cb904'

【问题讨论】:

也许你应该打印你的response。如果您实际上得到的是字符串"&lt;anonymous&gt;",那么显然这不是 JSON。 该错误几乎总是表明返回了 html 或 xml 内容,而不是 json。使用开发者工具网络选项卡检查实际请求。您可以查看使用的 url,检查状态并检查响应正文 检查 json 数据的编码。并在解析前打印response 不,JSON.parse 没有损坏。响应不是 JSON 字符串,因此无法解析。 @programandoconro 这没有任何意义。字符串化一个不是 json 的字符串不会有帮助 【参考方案1】:

看来您的回答是正确的。 我认为您需要在后端检查您的表单和模型。 如果表单无效或模型包含 null=true 等等。 我的意思是你会从后端对你的响应进行故障排除。

【讨论】:

啊,我明白了,我去看看 这不是答案,应该删除。使用评论区讨论和提出建议 谢谢元宇,错误在后端代码中,当我修复模型时,它运行良好。感谢您的提示!

以上是关于JSON.parse() 在 Linux 和 Mac 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

“JSON.parse”和“JSON.stringify”有啥区别?

JSON.stringify 和 JSON.parse 之间的区别

JSON.parse和JSON.stringify

JSON.parse和JSON.stringify

JSON.parse和JSON.stringify

秒懂JSON.parse()与JSON.stringify()的区别