关于Ajax的type为post提交方式出现请求失效问题
最近碰到这样一个问题,原本一个ajax异步提交数据之前是很好的,很多系统都延用了均未出现任何问题。最近这个版本却出现ajax方式post数据不到后台程序,让我折腾了好几天。起初的ajax是这样写的:
01.
$.ajax({
02.
type:
'POST'
,
03.
url:
"/Ajax/SaveData.aspx"
,
04.
dataType:
"json"
,
05.
data:
"RequestTime="
+ (
new
Date()).toString()+
"&WorkFlowInfo="
+jsonText,
06.
beforeSend:
function
() {
07.
},
08.
success:
function
(msg) {
09.
$(
"div[class='datagrid-mask']"
).hide();
10.
$(
"div[class='datagrid-mask-msg']"
).hide();
11.
alert(msg.mes);
12.
if
(msg.op !=
"err"
)
13.
window.location.reload();
14.
15.
},
16.
error:
function
(errorMsg) {
17.
$(
"div[class='datagrid-mask']"
).hide();
18.
$(
"div[class='datagrid-mask-msg']"
).hide();
19.
alert(
"发生了一个错误"
);
20.
}
21.
});
当我的jsonText字符串不是很长的情况下,是可以post至后台服务的。那么既然我的type为post方式,与数据长短有何关系对吧?你或许会如此坚定的想。
易错点:
那么为何当jsonText过长时post提交至后台失败呢?细心的网友可能会发现虽然是post方式但是data的书写方式是不对的,data原本就是接受json类型的参数和数据的,上面的代码却将之当做了直接在url内传递参数的形式,换言之就是将ajax的psot提交方式活生生地变换为了get方式提交。
get方式提交是直接在url内传递参数和数据,url内有最大字数限制的,所以当jsonText过长时就提交不至后台服务。
如何纠正?
既然是data的书写方式不对,那么我们只需要纠正一下这个地方即可,纠正后的示例代码如下所示:
01.
$.ajax({
02.
type:
'POST'
,
03.
url:
"/Ajax/SaveData.aspx"
,
04.
dataType:
"json"
,
05.
data: {RequestTime:(
new
Date()).toString(),WorkFlowInfo:escape(jsonText)},
06.
beforeSend:
function
() {
07.
},
08.
success:
function
(msg) {
09.
$(
"div[class='datagrid-mask']"
).hide();
10.
$(
"div[class='datagrid-mask-msg']"
).hide();
11.
alert(msg.mes);
12.
if
(msg.op !=
"err"
)
13.
window.location.reload();
14.
15.
},
16.
error:
function
(errorMsg) {
17.
$(
"div[class='datagrid-mask']"
).hide();
18.
$(
"div[class='datagrid-mask-msg']"
).hide();
19.
alert(
"发生了一个错误"
);
20.
}
21.
});
这样一来就可以正常post数据至后台服务了的。
关于Ajax的type为post提交方式出现请求失效问题相关推荐
- Extjs6关于Ajax和form表单提交以及store请求session超时的处理方法
对于Store的处理 每个store配置的时候,配上load监听,加载时处理: usrStore : {model : 'App.model.Usr',autoLoad : false,proxy : ...
- 表单的提交方式POST和GET
Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于: 1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示. 图1.4 ...
- ajax登录验证的原理,ajax用户登录验证-get和post提交方式,与工作原理—2018-8-15...
ajax用户登录验证: 实例 html> Ajax实战:表单验证 用户登录 邮箱: 密码: 提交 let btn = document.getElementsByTagName('button' ...
- form表单与ajax的两种提交方式
一.form表单与ajax两种提交方式使用的场景: 1)form表单提交适用于跳转到另一个页面,form标签中的数据通过submit的方式提交到后台,提交成功后会跳转到另一个页面,但没有返回值. 2) ...
- java contenttype_POST不同提交方式对应的Content-Type,及java服务器接收参数方式
简介: Content-Type(MediaType),即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请 ...
- ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传
---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...
- 关于前后台数据的提交方式
关于前后端的数据传输方式 1.前台页面的数据传送到后台的方式 1.1form表单提交[同步请求] 在前端页面中设置form表单,确定需要传递的参数name让用户输入,通过点击按钮后submit()提交 ...
- form表单—2种提交方式
只提交参数到后台,不接收返回值 html代码 <!--第1步:设置 action,method--> <form id="editForm" action=&qu ...
- form表单的多种提交方式及提交前验证
以下是本人总结处来的一些form的提交方式,网上还有别的提交方式,这里我总结了大小分为7类,其实就是三类的提交方式,若有哪里不对的,还请评论指出来,大家一起学习学习 1.无任何验证提交(最普通的提交) ...
最新文章
- CentOS7.3下Jenkins+docker自动化部署solo站点
- HDU 1848 Fibonacci again and again
- php单文件短链接,php实现的短网址算法分享
- boost::type_erasure::is_placeholder相关的测试程序
- 深入浅出计算机组成原理01:计算机概要与技术
- IDEA将maven项目配置到本地tomcat中运行
- Python进阶(零)字典、缺省参数、多值参数
- 【Opencv】基于色差的简单目标提取
- 文件格式介绍:文本,图片,音频,视频
- 服务器文件怎么清理,文件传输服务器怎么清理内存
- 未来IT行业前景如何?
- 张学友1/2世纪演唱会巡演日程、曲目及新闻汇总
- 【全栈开发实战小草看书之Web端(一)开发环境】
- 东华OJ基础85——手机短号
- ThinkPHP3.2短信验证码 (创蓝253短信验证码)
- 海量搜索服务架构搭建2-SolrCloud集群搭建
- 一二, Spark概述和快速入门
- Robin一个专注开发者的组织
- 数据结构和算法:圣诞老人分礼物
- 计算机中真值的概念,【概念辨析】真值、机器数、原码、反码、补码、变形补码、移码...
热门文章
- idea2020搜索不到插件的问题
- Architecture:话说科学家/工程师/设计师/商人
- mysql逻辑备份之mysqldump
- SpringCloud SpringBoot 推荐
- Shareplex 错误 can't open or read object cache file
- JQuery:deferred对象的方法
- 企业中squid+iptables多模块的综合应用案例
- iPad如何越狱?4.2.1完美越狱教程 一 (DFU 绿霸越狱)
- 大数据集群部署时ssh的公钥和似钥作用汇总
- 爬虫为什么使用asyncio以及邮件系统为什么使用celery