问题描述
使用springmvc作为框架,用urlrewrite实现了RESTful风格的url。页面上使用了jquery,我在jquery中使用ajax访问后台,同时给在请求头增加了一个自定义的http头,代码如下:function getSign(){var params = $("#source").val();$.ajax({type:"GET",url:"sign",beforeSend:function(xhr){xhr.setRequestHeader("x_client_param", params);},data:params,dataType:"html",success:function(data) {$("#sign").text(data);}});}使用firebug调试时,能看到我新增加的头 x_client_param,但是在sign的controller中,代码如下:@RequestMapping(value = "/sign")public void signSource(HttpServletRequest request, HttpServletResponse response) {String header = request.getHeader("x_client_param");logger.info("header value is: " + header);Enumeration em = request.getHeaderNames();while(em.hasMoreElements()) {String key = em.nextElement().toString();logger.info(key + ":" + request.getHeader(key));}}我却得不到我在页面上定义的http头,我用遍历或者直接根据header名得的时候都得不到。
解决方案
看着没什么错误呀 你用sniffer抓一下看看 然后跟踪下servlet看看是不是取之前处理request的时候丢了.http://andilyliao.iteye.com/blog/919243你看看我写的这个吧 不过没用框架.
解决方案二:
HTTP头 好像无法通过javascript伪装吧