最近碰到这样一个问题,原本一个ajax异步提交数据之前是很好的,很多系统都延用了均未出现任何问题。最近这个版本却出现ajax方式post数据不到后台程序,让我折腾了好几天。起初的ajax是这样写的:

view sourceprint?
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的书写方式不对,那么我们只需要纠正一下这个地方即可,纠正后的示例代码如下所示:

view sourceprint?
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提交方式出现请求失效问题相关推荐

  1. Extjs6关于Ajax和form表单提交以及store请求session超时的处理方法

    对于Store的处理 每个store配置的时候,配上load监听,加载时处理: usrStore : {model : 'App.model.Usr',autoLoad : false,proxy : ...

  2. 表单的提交方式POST和GET

    Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于: 1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示. 图1.4 ...

  3. ajax登录验证的原理,ajax用户登录验证-get和post提交方式,与工作原理—2018-8-15...

    ajax用户登录验证: 实例 html> Ajax实战:表单验证 用户登录 邮箱: 密码: 提交 let btn = document.getElementsByTagName('button' ...

  4. form表单与ajax的两种提交方式

    一.form表单与ajax两种提交方式使用的场景: 1)form表单提交适用于跳转到另一个页面,form标签中的数据通过submit的方式提交到后台,提交成功后会跳转到另一个页面,但没有返回值. 2) ...

  5. java contenttype_POST不同提交方式对应的Content-Type,及java服务器接收参数方式

    简介: Content-Type(MediaType),即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请 ...

  6. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  7. 关于前后台数据的提交方式

    关于前后端的数据传输方式 1.前台页面的数据传送到后台的方式 1.1form表单提交[同步请求] 在前端页面中设置form表单,确定需要传递的参数name让用户输入,通过点击按钮后submit()提交 ...

  8. form表单—2种提交方式

    只提交参数到后台,不接收返回值 html代码 <!--第1步:设置 action,method--> <form id="editForm" action=&qu ...

  9. form表单的多种提交方式及提交前验证

    以下是本人总结处来的一些form的提交方式,网上还有别的提交方式,这里我总结了大小分为7类,其实就是三类的提交方式,若有哪里不对的,还请评论指出来,大家一起学习学习 1.无任何验证提交(最普通的提交) ...

最新文章

  1. CentOS7.3下Jenkins+docker自动化部署solo站点
  2. HDU 1848 Fibonacci again and again
  3. php单文件短链接,php实现的短网址算法分享
  4. boost::type_erasure::is_placeholder相关的测试程序
  5. 深入浅出计算机组成原理01:计算机概要与技术
  6. IDEA将maven项目配置到本地tomcat中运行
  7. Python进阶(零)字典、缺省参数、多值参数
  8. 【Opencv】基于色差的简单目标提取
  9. 文件格式介绍:文本,图片,音频,视频
  10. 服务器文件怎么清理,文件传输服务器怎么清理内存
  11. 未来IT行业前景如何?
  12. 张学友1/2世纪演唱会巡演日程、曲目及新闻汇总
  13. 【全栈开发实战小草看书之Web端(一)开发环境】
  14. 东华OJ基础85——手机短号
  15. ThinkPHP3.2短信验证码 (创蓝253短信验证码)
  16. 海量搜索服务架构搭建2-SolrCloud集群搭建
  17. 一二, Spark概述和快速入门
  18. Robin一个专注开发者的组织
  19. 数据结构和算法:圣诞老人分礼物
  20. 计算机中真值的概念,【概念辨析】真值、机器数、原码、反码、补码、变形补码、移码...

热门文章

  1. idea2020搜索不到插件的问题
  2. Architecture:话说科学家/工程师/设计师/商人
  3. mysql逻辑备份之mysqldump
  4. SpringCloud SpringBoot 推荐
  5. Shareplex 错误 can't open or read object cache file
  6. JQuery:deferred对象的方法
  7. 企业中squid+iptables多模块的综合应用案例
  8. iPad如何越狱?4.2.1完美越狱教程 一 (DFU 绿霸越狱)
  9. 大数据集群部署时ssh的公钥和似钥作用汇总
  10. 爬虫为什么使用asyncio以及邮件系统为什么使用celery