var xmlHttp; //定义变量,用来创建xmlHttp对象
function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xmlHttp,ajax开始
if (window.XMLHttpRequest){ //非IE浏览器及IE7(7.0及以上版本),用xmlHttp对象创建
xmlHttp= new XMLHttpRequest();
} else if (window.ActiveXObject){ //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
xmlHttp= new ActiveXObject( "Microsoft.XMLHttp" );
}
if (xmlHttp){ //成功创建xmlHttp
param=encodeURI(param); //URL编辑,解决乱码问题
param=encodeURI(param);
xmlHttp.open( "post" ,url, false ); //与服务端建立连接(请求方式post或get,地址,true表示异步)
xmlHttp.onreadystatechange = onreadystatechangMethod; //指定回调函数
xmlHttp.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded;charset=UTF-8" ); //post提交设置项
xmlHttp.send(param); //发送请求
}
} |
SpringMVC中的@RequestMapping修饰的方法在正常情况下虽然可以直接在参数列表中声明参数,但如果在Ajax的Post方式提交时是不会取到值的,所以要用最原始的方法获取参数,
如果参数中有大量数据,最好用new String接收
@RequestMapping (value = "/page/video/videoReply.do" )
public String videoReply(HttpServletRequest request,
HttpServletResponse response) {
String strId = request.getParameter( "strId" );
String content = new String(request.getParameter( "content" ));
try {
content = java.net.URLDecoder.decode(content, "UTF-8" );
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null ;
} |