ajax表单提交的一些问题
1,dataType类型不对
2,发送不了请求
3,静态脚本的执行在服务器断了都可以,但是一旦涉及到网络的请求(ajax)就这部分不可。如上ajax上部分
4,不建议用.formSerialize()直接用.serialize()否则一些复杂控件如select序列化不了
对于ajax来讲dataType类型不对,后台成功执行,也会返回失败,在用ajax提交表单的时候,如果jsp中的控件name是后台接收对象没有的,
那么就会发送不了请求提示jquery的$.broser.mins找不到 Cannot read property 'msie' of undefined
比如<select name="pzm" id="zdyMap_P201"></select>在模型驱动,属性驱动中没有pzm,$("#submitForm").formSerialize()就造成了错误。
jsp看错误:把console中的提示三角打开即可
$.ajax({
url : webUrl + "/chat/offer/submit",
type : "post",
cache : false,
async : true,
//dataType : "json",
data : $("#submitForm").formSerialize(),//$("#submitForm").serialize()
success : function(ret) {
addToChatRecord();
checkChatRecord(0);
$("#pzsp").attr("style","display:none;");
$("#pzsp1").attr("style","display:block;");
var a= $("#zdyMap_P201").val();
$("#pzsp1").innerText=a;
alert($("#pzsp1").innerText);
},
error : function(retMsg) {
addToChatRecord();
checkChatRecord(0);
}
});
@RequestMapping(value = "/chat/offer/submit", method = RequestMethod.POST)
public void TbConOrdPriceSubmit(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model, TbConOrdVo tbConOrdVo)
throws EsteelException, IOException {
String currentUserKey = getCurrentUserKey(request, session);
if (!currentUserKey.equals(tbConOrdVo.getCustomerKey())) {
currentUserKey = tbConOrdVo.getCustomerKey();
}
if (!currentUserKey.equals(tbConOrdVo.getTradeCustomerKey()) && !currentUserKey.equals(tbConOrdVo.getTbConobjCustomerKey())) {
response.getWriter().write("Access denied!");
} else {
if (currentUserKey.equals(tbConOrdVo.getTbConobjCustomerKey())) {
tbConOrdVo.setOrdpriceMan("B");
} else {
tbConOrdVo.setOrdpriceMan("A");
}
/* 先转换成json, */
JSONObject object = JSONObject.fromObject(tbConOrdVo);
String tempstr = object.toString();
/* 加入name信息,和ipAddress信息 */
tempstr = "{\"objectName\":\"TbConOrdVo\",\"ipAddress\":" + EsteelNetworkUtil.getIpAddress(request) + ",\"object\":" + tempstr + "}";
/* 然后写入activemq */
topicSender.sendMessage(tempstr);
System.out.println("====Write to MQ success====");
response.getWriter().write("Success submit!");
}
}