最近碰到这样一个问题,原本一个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提交方式出现请求失效问题的更多相关文章

  1. ajax的get与post提交方式

    Get方式的用户名验证 1.编写html代码 <form> 用户名[GET]:<input id="usernameID" type="text&quo ...

  2. ajax参数contentType与数据提交方式

    使用bootstrapTable时,服务器端无法获取参数(flask,request.form.get方法),检查发现是因为ajax提交的时候,方式是payload,要想用form提交,需要设置con ...

  3. 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式

    今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...

  4. 利用 ajax自定义Form表单的提交方式

    需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...

  5. web 开发之js---ajax 中的两种提交方式ajax post 和 ajax get 实例

    ()post http://04101334.iteye.com/blog/637695/ ()get function serializeElement(element) { var method ...

  6. ajax的post提交方式和传统的post提交方式哪个更快?

    如果同时用ajax和post提交先执行哪个呢?是ajax返回后再执行post呢还是同时执行? ajax的post提交方式和传统的post提交方式哪个更快? >> php这个答案描述的挺清楚 ...

  7. ASP.NET MVC 表单的几种提交方式

    下面是总结一下在ASP.NET MVC中表单的几种提交方式. 1.Ajax提交表单 需要引用 <script type="text/javascript" src=" ...

  8. 【整理】Ajax异步实现的几种方式总结

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.GET ...

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

    POST不同提交方式对应的Content-Type,及java服务器接收参数方式 注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正. 简介: Conten ...

随机推荐

  1. yii中数据模型的使用

    模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. yii数据库操作使用的是PDO,所以使用yii的 ...

  2. linux文件系统拓展属性

    在研究GlusterFS中,发现GlusterFS使用了文件系统的Extended Attributes,中文可以称之为文件系统扩展属性.由于资料比较少,中文资料更少,因此把记录几点Extended ...

  3. json格式数据 ,将数据库中查询的结果转换为json(方式2)

    controller: /*** * 返回所有版本的信息,json的形式返回到前台 * @return */ @RequestMapping(value="/getAllVersion&qu ...

  4. 自己造容器List

    //自己造容器--List /* 1.iterator 2.头迭代器 3.尾迭代器 4.链表长 5.判空 6.清除 7.取头元素 8.取尾元素 9.头插入 10.尾插入 11.头删除 12.尾删除 1 ...

  5. NSDictionary 的内部实现

    NSDictionary是IOS中使用的一种key-value容器,参考cocotron的源代码,NSDictionary使用NSMapTable实现. NSMapTable同样是一个key-valu ...

  6. SqlParameter关于Like的传参数无效问题

    正确的写法(简洁版) private void GetHandleData(string strKeyWord1, string strKeyWord2, string strKeyWord3) { ...

  7. redis高级实用特性(2)

    事务处理: redis对事务的支持目前还是比较简单,redis只能保证一个 client发起事务中的命令可以连续执行,而中间不会插入其他 client的命令,当一个client 在一个连接中发出mul ...

  8. oracle导入导出数据库

    oracle导出dmp文件: 开始->运行->输入cmd->输入 exp user/password@IP地址:1521/数据库实例 file=文件所在目录 (如:exp user/ ...

  9. 五种JSP页面跳转方法详解

    1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...

  10. linux常用服务软件搭建及使用技巧

    一.Webmin安装: Webmin 是一个基于浏览器的管理工具,可以应用于Linux 和其他一些平台,提供了可以完成很多管理和操作任务的图形化界面 •安装完成后,root 用户会被自动创建,密码为系 ...