关于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 ...
随机推荐
- EasyuiAPI:布局
一.Panel(面板) 1.通过标签创建: <div id="p" class="easyui-panel" title="My Panel&q ...
- php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间
权声明:本文为博主原创文章,未经博主允许不得转载. //这个星期的星期一 // @$timestamp ,某个星期的某一个时间戳,默认为当前时间 // @is_return_timestamp ,是否 ...
- Udemy - Angular 2 - The Complete Guide 笔记
1. install > npm install -g angular-cli 2. create app > ng new first-app 3. build app > cd ...
- UVALive 6672 Bonus Cards 概率dp
题意呢 就是有两种售票方式 一种是icpc 一种是其他方式 icpc抢票成功的概率是其他方式的2倍…… 这时 一个人出现了 他通过内幕知道了两种抢票方式各有多少人 他想知道自己如果用icpc抢票成功的 ...
- wuzhi 五指 数据库仿 thinkphp
在/coreframe/app/模块/libs/class/mydb.class.php 中编辑 调用 : $mydb = load_class("mydb","模块&q ...
- spring实现读写分离
(转自:http://www.cnblogs.com/surge/p/3582248.html) 现在大型的电子商务系统,在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数 ...
- bootstrap validator html attributes 选项
常用的html属性:data-fv-message="The username is not valid"data-fv-notempty="true"data ...
- Entity Framework Tools install to VS 2015
因为在VS2013,2015里不再支持Sql compact 数据库的显示, 但是我们可以通过安装EF tools扩展来支持,参考地址:http://thedatafarm.com/data-acce ...
- Linux 内核协议栈之TCP连接关闭
Close行为: 当应用程序在调用close()函数关闭TCP连接时,Linux内核的默认行为是将套接口发送队列里的原有数据(比如之前残留的数据)以及新加入 的数据(比如函数close()产生的FIN ...
- CSS的基本概念
<!--CSS 一.概念:CSS的全称是Cascading Style Sheets,层叠样式表,用来控制HTML标签样式,在美化网页中起到非常重要的作用 CSS的编写格式是键值对形式的,比如 ...