JSON.stringify && JSON.parse

2023-11-04

原生JS 通过 ajax请求数据的时候控制台报500的错误,在这里记录一下,不喜勿喷哈!!!

 let submit = document.getElementsByClassName("submit")[0];
        submit.addEventListener("click",function(){
            let answer = document.getElementById("inp1").value;
            let standardAnswer = document.getElementById("inp2").value;
            let data = {
                "answer":"",
                "standardAnswer":""
            }
            data.answer = answer;
            data.standardAnswer = standardAnswer;
            let xhr = null;
            if(window.XMLHttpRequest){
                xhr = new XMLHttpRequest();
            }else {
                xhr = new ActiveXObject("Microsoft.XMLHTTP")
            }
            xhr.onreadystatechange = function() {
                if(xhr.readyState == 4 && xhr.status == 200){
                    //将字符串转为json格式
                    let obj = JSON.parse(xhr.responseText);
                    if (obj.result == 1) {
                        result.innerText = "相似"
                        return;
                    } else if (obj.result == 0) {
                        result.innerText = "不相似"
                        return;
                    }else {
                        result.innerText = "不可检测"
                    }
                }
            }
            xhr.open('POST','http://10.1.23.105:8084/question/equal-check',true);
            xhr.setRequestHeader("Content-Type", "application/json");
            //发送数据之前将Json数据转为字符串
            xhr.send(JSON.stringify(data));
            const box = document.querySelector("#math-rend-box");
            const studentBox = box.children[0];
            const normalBox = box.children[1];
            const result = box.children[2];
            studentBox.innerText = answer;
            normalBox.innerHTML = standardAnswer;
            // MathJax.texReset();
            // MathJax.typesetClear();
            MathJax.typeset();
        })

从上面的代码段中,在判断 result 状态前需要通过 JSON.parse() 将字符串转为 JSON 格式后再进行判断,还有就是在 send 发送数据之前一定要将数据通过 JSON.stringify() 将 JSON 格式的数据转为字符串类型,否则没有办法请求数据,这就是控制台报500错误的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON.stringify && JSON.parse 的相关文章

随机推荐

  • 用js写一个简单的定时器

  • STM32学习笔记 -系统时钟Systick

    文章目录 一 SysTick系统时钟滴答定时器的相关概念 1 SysTick的两大作用 1 1 可以产生精确延时 节省定时器 1 2 可以提供给操作系统一个单独的心跳 时钟 节拍 主要 2 SysTick的定义 3 SysTick运行机制
  • 重构,改善既有代码的设计--总结篇

    重构 改善既有代码的设计 第一章感悟 一 书中经典句子 1 重构之前 首先检查自己是否有一套可靠的测试机制 这些测试必须有自我检验能力 2 面对长长的函数 需要分解 代码块越小越好管理 二 自己总结的句子 1 修改长长的函数 找到变的参数和
  • Cesium 之加载倾斜摄影3d模型(解决倾斜漂移问题)

    以Cesium3DTileset方式加载服务发布的倾斜摄影静态资源Json文件 参考如下 item url 倾斜摄影的json地址 tileset json let tileset window viewer scene primitive
  • OpenAi[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人-学习详解篇

    文章大部分来自 https lucent blog 原文博客地址 https blog ideaopen cn 最近火热全文的ChatGPT 被很多人玩出了花 我们在Github上可以看到几个常见的逆向SDK包 这一篇我将以学习的方式来写这
  • 项目实用功能-全局loading动画

    1 为设么要使用全局loading 调用的每一个接口都要绑定一个loading真的很烦 2 实现这个需要考虑哪些要素 首先全局的loading需要一个调用任何接口都要执行的地方打开 那就肯定是axios的前置拦截函数了 loading有加载
  • mongodb导入数据库报错:command listCollections requires authentication

    今天迁移mongodb数据 需要将数据导入到一个新的mongodb中去 把环境搭建好之后 执行 mongorestore dir home backdata 想要导入数据 却报错了 错误信息如下 command listCollection
  • 第50步 深度学习图像识别:Data-efficient Image Transformers建模(Pytorch)

    基于WIN10的64位系统演示 一 写在前面 1 Data efficient Image Transformers Data efficient Image Transformers DeiT 是一种用于图像分类的新型模型 由Facebo
  • Minio(储桶bucket)上传和下载文件【Java】(图片转流、base64)

    此处先将图片下载到本地 再进行转换 MinIO是一个对象存储服务 非常轻量 Java Api 依赖
  • Springboot启动扩展点超详细总结,再也不怕面试官问了

    1 背景 Spring的核心思想就是容器 当容器refresh的时候 外部看上去风平浪静 其实内部则是一片惊涛骇浪 汪洋一片 Springboot更是封装了Spring 遵循约定大于配置 加上自动装配的机制 很多时候我们只要引用了一个依赖
  • NoSQL数据库概述

    简介 本文首先解释了NoSQL的出现的原因 介绍了NoSQL数据库所依据的理论和原则 然后分别介绍了四种NoSQL数据库的类型 以及其代表产品 并讨论了这四种类型的NoSQL的特点以及适用场景 需要NoSQL的理由 NoSQL数据库 看起来
  • Qt程序设置不重复打开该程序

    Qt程序设置不重复打开该程序 文章目录 Qt程序设置不重复打开该程序 对于已经打开的Qt桌面程序 我们希望用户再次双击桌面的快捷方式时 程序可以自动激活到其他所有程序的最前面 而不是重新打开一次程序 此时我们采用QSharedMemory方
  • 【图像处理】【去模糊】图像去模糊之初探--Single Image Motion Deblurring

    原文 原文地址 曾经很长一段时间 对图像去模糊都有一种偏见 认为这是一个灌水的领域 没有什么实用价值 要到这样的文章 不管是多高的档次 直接pass 最近在调研最近几年的关于Computational Photography的一些研究热点时
  • 莫言用 GPT 写颁奖辞,那如果他自己写会是什么效果呢?

    在 收获 杂志 65 周年庆典上 莫言在为余华颁奖时表示 余华是自己的好朋友 但给他的颁奖词写了好几天也想不出来 后来找了 ChatGPT 帮忙写 最后 莫言让 ChatGPT 写了一篇莎士比亚风格 1000 多字的颁奖词 输入了关键词 活
  • 数据仓库_缓慢渐变维_拉链表(全揭秘)

    这篇文章我们主要讲解下以下几个点 什么是拉链表 用于什么样的场景 拉链表的示例 如何获取某一天的历史状态 如何在使用维度拉链表并使用代理键的前提下 构建含维度代理键的事实表 1 什么是拉链表 用于什么样的场景 当维度数据发生变化时 将旧数据
  • Hutool:一行代码搞定数据脱敏

    1 什么是数据脱敏 1 1 数据脱敏的定义 数据脱敏百度百科中是这样定义的 数据脱敏 指对某些敏感信息通过脱敏规则进行数据的变形 实现敏感隐私数据的可靠保护 这样就可以在开发 测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集
  • 枭龙智能眼镜 XLOONG X100 Glass拆解

    这里只拆到主板过 首先需要对带Glass的可拆卸配件进行壳体加热 主机外壳有密封胶 吹风机对主机外壳的接缝处进行加热 可以从下侧的点开始用撬棒拆 拆开一个角之后沿着边慢慢打开 如果还是有阻尼感打不开 用吹风机加热再慢慢撬开 但是注意 打开幅
  • MySQL备份与恢复

    目录 数据库备份的分类 数据备份的重要性 数据库备份的分类 常见的备份方法 MySQL完全备份与恢复 MySQL完全备份介绍 MySQL完全备份的优缺点 数据库完全备份分类 完全备份操作 物理冷备份 逻辑备份 mysqldump的使用 My
  • python3.6打包成exe可执行文件,已解决方案

    将python程序打包成exe可执行文件有多种方法 这里讲一种最简单最常用的方法 只需要使用pyinstaller命令即可 一 环境 Windows 7或10 x64 Python 3 6 1 二 需要包 pyinstaller 3 3 p
  • JSON.stringify && JSON.parse

    原生JS 通过 ajax请求数据的时候控制台报500的错误 在这里记录一下 不喜勿喷哈 let submit document getElementsByClassName submit 0 submit addEventListener