关于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提交方式出现请求失效问题的更多相关文章
- ajax的get与post提交方式
Get方式的用户名验证 1.编写html代码 <form> 用户名[GET]:<input id="usernameID" type="text&quo ...
- ajax参数contentType与数据提交方式
使用bootstrapTable时,服务器端无法获取参数(flask,request.form.get方法),检查发现是因为ajax提交的时候,方式是payload,要想用form提交,需要设置con ...
- 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...
- 利用 ajax自定义Form表单的提交方式
需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...
- web 开发之js---ajax 中的两种提交方式ajax post 和 ajax get 实例
()post http://04101334.iteye.com/blog/637695/ ()get function serializeElement(element) { var method ...
- ajax的post提交方式和传统的post提交方式哪个更快?
如果同时用ajax和post提交先执行哪个呢?是ajax返回后再执行post呢还是同时执行? ajax的post提交方式和传统的post提交方式哪个更快? >> php这个答案描述的挺清楚 ...
- ASP.NET MVC 表单的几种提交方式
下面是总结一下在ASP.NET MVC中表单的几种提交方式. 1.Ajax提交表单 需要引用 <script type="text/javascript" src=" ...
- 【整理】Ajax异步实现的几种方式总结
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.GET ...
- POST不同提交方式对应的Content-Type,及java服务器接收参数方式
POST不同提交方式对应的Content-Type,及java服务器接收参数方式 注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正. 简介: Conten ...
随机推荐
- jQuery第四章
jQuery中的事件和动画 一.jQuery中的事件 1.加载DOM (1)执行时机 $(document).ready()方法和window.onload方法有相似的功能,但是在执行时机方面是有区别 ...
- hdu_5810_Balls and Boxes(打表推公式)
题目链接:hdu_5810_Balls and Boxes 题意: 如题,让你求那个公式的期望 题解: 打表找规律,然后推公式.这项技能必须得学会 #include<cstdio> #in ...
- chapter9_4 非抢占式的多线程
协同程序与常规的多线程不同之处:协同程序是非抢占式的. 当一个协同程序运行时,是无法从外部停止它的.只有当协同程序显式地调用yield时,它才会停止. 当不存在抢先时,编程会变得简单很多,无须为同步的 ...
- kindeditor编辑器,图片上传功能齐全
废话不多说直接上文件包压缩包:kindeditor图片上传(VS2012)
- javamail邮件发送
// 发送邮件 public static void send(String toEmail, String content) { Session session = getSession(); tr ...
- centos6下的mysql的安装
第1步.yum安装mysql [root@stonex ~]# yum -y install mysql-server 安装结果: Installed: mysql-server.x86_6 ...
- 网页 JavaScript
今天,我主要学习了JavaScript的部分内容. JavaScript在html中的位置主要有三个地方:head里面.body里面.</html>之后,我们一般写在</html&g ...
- Javascript的精华
一.语法 JS只有一个数字类型,64位浮点数,所以1和1.0是相同的.为什么这么设计:防止短整型的溢出. 二.对象 1.通常将一个对象的值赋给另一个变量的赋值方法 if(car.name!=null) ...
- CSS的属性
一,可继承属性<!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...
- python&MongoDB
1 #!/usr/bin/python 2 #-*- coding:utf-8 3 import pymongo 4 connection=pymongo.MongoClient() 5 tdb=co ...