关于Ajax的type为post提交方式出现请求失效问题
最近碰到這樣一個(gè)問(wèn)題,原本一個(gè)ajax異步提交數(shù)據(jù)之前是很好的,很多系統(tǒng)都延用了均未出現(xiàn)任何問(wèn)題。最近這個(gè)版本卻出現(xiàn)ajax方式post數(shù)據(jù)不到后臺(tái)程序,讓我折騰了好幾天。起初的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("發(fā)生了一個(gè)錯(cuò)誤"); 20.} 21.});?
當(dāng)我的jsonText字符串不是很長(zhǎng)的情況下,是可以post至后臺(tái)服務(wù)的。那么既然我的type為post方式,與數(shù)據(jù)長(zhǎng)短有何關(guān)系對(duì)吧?你或許會(huì)如此堅(jiān)定的想。
易錯(cuò)點(diǎn):
那么為何當(dāng)jsonText過(guò)長(zhǎng)時(shí)post提交至后臺(tái)失敗呢?細(xì)心的網(wǎng)友可能會(huì)發(fā)現(xiàn)雖然是post方式但是data的書寫方式是不對(duì)的,data原本就是接受json類型的參數(shù)和數(shù)據(jù)的,上面的代碼卻將之當(dāng)做了直接在url內(nèi)傳遞參數(shù)的形式,換言之就是將ajax的psot提交方式活生生地變換為了get方式提交。
get方式提交是直接在url內(nèi)傳遞參數(shù)和數(shù)據(jù),url內(nèi)有最大字?jǐn)?shù)限制的,所以當(dāng)jsonText過(guò)長(zhǎng)時(shí)就提交不至后臺(tái)服務(wù)。
?
如何糾正?
既然是data的書寫方式不對(duì),那么我們只需要糾正一下這個(gè)地方即可,糾正后的示例代碼如下所示:
?
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("發(fā)生了一個(gè)錯(cuò)誤"); 20.} 21.});這樣一來(lái)就可以正常post數(shù)據(jù)至后臺(tái)服務(wù)了的。
總結(jié)
以上是生活随笔為你收集整理的关于Ajax的type为post提交方式出现请求失效问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 实战:微信小程序支付开发具体流程
- 下一篇: RabbitMQ 高可用集群搭建及电商平