您的位置:首页 > 其它

Ajax请求,注意事项

2014-08-26 09:00 435 查看
js里面进行ajax请求时,注意:

1,控制层里面需要加上@ResponseBody,使方法返回值转json后返回,否则会出现视图解析器会在前面和后面加上前缀,后缀使之返回一个jsp页面

/WEB-INF/page/
<!-- 定义 视图解析 JSP文件的位置 -->
<bean id="viewResolver_system"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/page/" />
<property name="suffix" value=".jsp" />
</bean>


2,因装饰页面也是过滤整个.htm请求,所以此处也需要处理,解决方案有两个,

1> 在excludes里面增加pattern,定义不需要过滤的页面

2>在方法名后面加下Ajax,index,等,过滤不需要的方法 如:

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/page">
<!-- 此处用来定义不需要过滤的页面 -->
<excludes>
<pattern>/mobile/*</pattern>
<pattern>/rfid/*</pattern>
<pattern>*toCommodityQuery.htm*</pattern>
<pattern>*validateLogin.htm*</pattern>
<pattern>*Ajax.htm*</pattern>
<pattern>*index.htm</pattern>
<pattern>*masterDetail.htm*</pattern>
<pattern>*adList.htm*</pattern>
<pattern>*footList.htm*</pattern>
<pattern>*customized.htm*</pattern>
<pattern>*designerList.htm*</pattern>
<pattern>*designDrawing.htm*</pattern>
<pattern>*designDetail.htm*</pattern>
</excludes>

<!-- 默认装饰页面, 在需要装饰的页面增加 <meta name="decorator" content="default" /> -->
<decorator name="default" page="default.jsp">
<pattern>*.htm</pattern>
</decorator>
</decorators>
如此方法若不加上Ajax,在function data返回的就是一个装饰页面

<pre name="code" class="java"> @RequestMapping(value = "center_checkRfidForFreeRepairClean_Ajax")
@ResponseBody
public String checkRfidForFreeRepairClean(@RequestParam("rfid") String rfid) {
GoodsReturn goodsReturn = goodsReturnService.findByRfidAndStatus(rfid.trim(), GoodsReturnStatus.GOODSRETURN_SUCCESS);
if(LogicUtils.isNotNull(goodsReturn)) {
return "success";
} else {
return "";
}
}


3,ajax请求,如IE可能还存在游览器缓存问题,所以在请求时,需要增加一个随机数,以确保每个请求都是唯一的。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: