ajax让服务器崩溃,详解ajax的data参数错误导致页面崩溃

今天准备把选定表格的其中一行的数据通过ajax传给后端,但是网站确崩溃了。

代码如下:

$('.icon-edit').click(function (event) { 这是一个按钮

o=$('.icon-edit').index($(this))+1;

edit.style.display='block';

//console.log('$(this)',$(this).parent().parent());

let message=$(this).parent().parent();

$("#non").val(message.children('td:eq(0)').html());

$("#name").val(message.children('td:eq(1)').html());

$("#sex").val(message.children('td:eq(2)').html());

$("#age").val(message.children('td:eq(3)').html());

$("#xueyuan").val(message.children('td:eq(4)').html());

$("#grade").val(message.children('td:eq(5)').html());

$("#phone").val(message.children('td:eq(6)').html());

$("#room").val(message.children('td:eq(7)').html());

l=message.children('td:eq(0)').html();

});

$('#ok').click(function () {

//event.stopImmediatePropagation();

let text=$('table');

id=$('#non').val();

username=$('#name').val();

sex=$('#sex').val();

age=$('#age').val();

institute=$('#xueyuan').val();

grade=$('#grade').val();

phone=$('#phone').val();

hlbhl=$('#room').val()

text.find("tr:eq("+o+")").children('td:eq(0)').text(id);

text.find("tr:eq("+o+")").children('td:eq(1)').text(username);

text.find("tr:eq("+o+")").children('td:eq(2)').text(sex);

text.find("tr:eq("+o+")").children('td:eq(3)').text(age);

text.find("tr:eq("+o+")").children('td:eq(4)').text(institute);

text.find("tr:eq("+o+")").children('td:eq(5)').text(grade);

text.find("tr:eq("+o+")").children('td:eq(6)').text(phone);

text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl);

$.ajax({

type: "POST",

url: "doAction2.php",//请求的后台地址

data: {

non:o,

id: id,

username: username,

sex: sex,

age: age,

institute: institute,

grade: grade,

phone: phone,

hlbhl: hlbhl

},//前台传给后台的参数

dataType: "json",

ansync: true,

ContentType: "application/json; charset=utf-8",

success: function (msg) {//msg:返回值

a=2;

console.log(a);

}

});

edit.style.display='none';

});

代码的大意是我点击一个按钮($('.icon-edit'))然后弹出一个表单(edit),表单是数据来源于点击,然后修改表格

的内容点击确定按钮($('#ok'))后把表单数据覆盖掉之前点击行的数据,达到修改表格的目的,点击确定时触发ajax,

把修改后的数据发送给后端,拿到数据并更新数据库。

结果页面不报错,而是直接崩溃了,查看了许久,才发现是由于ajax的data参数写错了,之前写成这样:

id=text.find("tr:eq("+o+")").children('td:eq(0)').text(id);

username=text.find("tr:eq("+o+")").children('td:eq(1)').text(username);

sex=text.find("tr:eq("+o+")").children('td:eq(2)').text(sex);

age=text.find("tr:eq("+o+")").children('td:eq(3)').text(age);

institute=text.find("tr:eq("+o+")").children('td:eq(4)').text(institute);

grade=text.find("tr:eq("+o+")").children('td:eq(5)').text(grade);

phone=text.find("tr:eq("+o+")").children('td:eq(6)').text(phone);

hlbhl=text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl);

$.ajax({

type: "POST",

url: "doAction2.php",//请求的后台地址

data: {

non:o,

id: id,

username: username,

sex: sex,

age: age,

institute: institute,

grade: grade,

phone: phone,

hlbhl: hlbhl

},//前台传给后台的参数

dataType: "json",

ansync: true,

ContentType: "application/json; charset=utf-8",

success: function (msg) {//msg:返回值

a=2;

console.log(a);

}

});

edit.style.display='none';

});

从上面可以看出,我传给data的数据并不是字符串之类的,而是一个n.fn.init [td, prevObject: n.fn.init(1), context: document],

由于自己的粗心和对导致ajax出现错误的情况了解比较少,导致看了很久的代码才发现原因,刚开始就以为不会是参数导致,

因为认为参数错误顶多拿到的数据不对,报下错或者结果不一样,果真自己还是太年轻。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统

只要打开该网站,选择你需要的 Linux/Unix 发行版,然后开始试用!-- Sk(作者)不久前我们介绍过 OSBoxes ,该网站提供了一系列免费且开箱即用的 Linux 和 Unix 虚拟机。你可以在你的 Linux 系统中下载这些虚拟机并用 VirtualBox 或 V…

搭建微信令牌中控服务器,使用ThinkJs搭建微信中控服务的实现方法

本人前端渣渣一枚,这篇文章是第一次写,如果有硬核bug,请大佬们轻喷、指出... 另外,本文不涉及任何接口安全、参数校验之类的东西,默认对调用方无脑级的信任:joy: 目前自用的接口包括但不限于以下这些|--- 微信相关| |-…

小黑框如何连接mysql_珍藏版(cmd小黑框)数据库命令及操作

话不多说直接来,后续补充。查看数据库show databases;创建数据库create database 2018;使用数据库use 2018;查看数据库中的所有表show tables;删除数据库drop database 库名;create table student(id int(10) auto_increment primary key,name varchar(20) not null…

DS系列服务器硬盘扇区,硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)...

硬盘的DOS管理结构1.磁道,扇区,柱面和磁头数硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区&…

arm ubuntu 编译boost_为arm linux 交叉编译boost 1.33.1

首先在arm linux环境上要有zlib1 解开boost压缩包, cd进入解压目录2 编译出bjam,并配置好,看手册页3 产生Makefile: ./configure "-sBUILDdebug release static/dynamic" --without-python4 更改Makefile:把文件头上的几个变量改成下面这样,我…

华为服务器sn号查询网站,linux 查询服务器sn

linux 查询服务器sn 内容精选换一换Linux云服务器变更规格时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常。本节操作介绍变更规格后检查磁盘挂载状态的操作步骤。以root用户登录云服务器。执行以下…

jdba访问mysql_mysql连接出现问题记录

解决:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone valu//报错信息Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘‘ is unrecognized or represents…

mysql 存储引擎版本_mysql不同版本和存储引擎选型的验证

Mysql的版本和存储引擎较多,为了选择最适合业务使用的系统,需要进行一定的验证,本文描述mysql的验证过程和思路。主要涉及:Mysql的版本v Mariadbv Tokudbv Oracle具体的存储引擎v Myisamv Innodbv TokuDBv Maria如下是具体的思路M…

python制作表白神器_python制作exe可执行表白神器-Go语言中文社区

1、效果图2、程序源码import turtleimport time#writing txtturtle.hideturtle()turtle.penup()turtle.goto(130,50)# turtle.pendown()turtle.color("blue")turtle.write("亲爱的,给你画个东西",font ("Times",18,"bold"…

qtp连接mysql 无驱动_QTP连接MySQL

1、安装 Connector/ODBC2、查看数据源名称『控制面板』- 『管理工具』- 『数据源(ODBC)』-『添加』3、连接数据库Dim Conn,ConnString创建数据库实例Set ConnCreateObject("ADODB.Connection")连接字符串ConnString"Driver{Mysql ODBC 5.2w Driver};DATABASEmys…

python3如何安装selenium_Mac-Firefox浏览器+selenium+Python3环境安装

1.安装selenium安装命令:pip3 install selenium2.53.6如果之前已经安装过了,可以先卸载pip3 uninstall selenium使用selenium2.53.6版本是因为-selenium2的版本会更加稳定(切记注意版本号,很多问题都是由于版本不兼容导致的哦2.安装Firefox浏…

python保存模型的路径怎么写_使用python在MongoDB中保存机器学习(ML)和深度学习(DL)模型...

我们知道,当我们训练机器学习或深入学习模型时,我们必须保存训练过的模型,以便将来进行预测。现在的训练模型非常昂贵,所以如果我们能够保存它们并将其用于解决其他一些问题。例如,一个训练过的能够识别汽车的神经网络…

抓狐狸python_​用Python操作Kubernetes的Job

本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释。pip install kubernetes初始化from kubernetes.client import BatchV1Apifrom kubernetes.config import load_kube_configload_kube_config()batch BatchV1Api()load_kube_config 是从默认位置…

mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM

MyISAM可以将表压缩为只读表来节省空间。使用myisampack工具来进行表压缩。MyISAM支持全文索引;一般使用instr()来替代。myisam在写的时候,会产生一个表级锁。myisam锁的时候使用一个lock命令,lock类型有write锁(只有当前线程可以做读写删操作…

mysql双机数据热备份_配置MySQL数据库双机热备份

1、mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现 mysql 数据库的热备份。  2、要想实现双机的热备首先要了解主从…

java token_Java实现基于token认证的方法示例

随着互联网的不断发展,技术的迭代也非常之快。我们的用户认证也从刚开始的用户名密码转变到基于cookie的session认证,然而到了今天,这种认证已经不能满足与我们的业务需求了(分布式,微服务)。我们采用了另外一种认证方式&#xff…

重置mysql+密码_MySQL重置root密码的几种方法(windows+Linux)

重置root密码的方法:windows系统下:1、停止mysql服务;2、新建文件init-root.txt,写上如下内容:update mysql.user set password password(‘newpwd‘) where user ‘root‘;flush privileges;保存;3、打开命令行&…

java 中导出word后压缩文件_Java批量导出word压缩后的zip文件案例

一、js代码,由于参数比较大所以利用form表单使用post导出function export_word(){var selectedRows $("#dg").datagrid("getSelections");if (selectedRows.length0) {showAlertWarning("请选择一条的信息...");return;}if (selecte…

opengl es java_java – 在Android OpenGL ES App中加载纹理

1)您应该根据需要分配尽可能多的纹理名称.一个用于您正在使用的每个纹理.加载纹理是一项非常繁重的操作,会使渲染管道停顿.所以,你永远不应该在游戏循环中加载纹理.您应该在呈现纹理的应用程序状态之前具有加载状态.加载状态负责加载渲染中所需的所有纹理.因此,当您需要渲染几何…

java io 视频 下载_Java下载映客主播视频回放到电脑硬盘

Java下载映客主播视频回放到电脑硬盘使用Java下载映客回放到电脑硬盘使用方法:在映客app播放回放视频时,分享到QQ,就可以得到url,其中的liveid属性就是视频ID。源代码由 [**海思教育**](http://edu.itshidu.com/) 提供&#xff0c…