这就是我的js的样子,
$.ajax({
url: "/traffic/validateParams",
data: JSON.stringify(data),
type: 'post',
contentType: 'application/json; charset=utf-8',
success: function (d) {
if(d == "") {
$.ajax({
url: "/traffic/update",
data: JSON.stringify(data),
type: 'post',
contentType: 'application/json; charset=utf-8'
});
} else {
alert(d);
btn.removeAttr("disabled");
}
}
});
这里,如果数据验证不正确,validateParams将返回错误消息,否则调用update方法。
我的问题从这里开始,使用更新方法。下面是相同方法的两个代码,重定向的代码不起作用,带渲染的代码也可以正常工作。
重定向代码:
def update() {
def p = (request.JSON ?: params)?.subMap(TrafficSimulatorConstant.params.keySet())
TrafficSimulatorConstant.updateParams(p)
log.info("traffic simulator configured")
redirect(action: "status") }
此处,在上面的代码中,即使值是更新,也没有重定向到状态页面。而且,该按钮未启用。
带渲染的代码:
def update() {
def p = (request.JSON ?: params)?.subMap(TrafficSimulatorConstant.params.keySet())
TrafficSimulatorConstant.updateParams(p)
log.info("traffic simulator configured")
String url = createLink(action:"status")
render(text: "window.location.href='${url}'", contentType: "application/javascript") }
此处,值将更新,页面将重定向到状态页面。按钮启用/禁用无关紧要,因为它是页面重定向,我们有一个新页面。
我想了解这两种实现之间的区别,并且想知道是否有办法通过重定向实现相同的行为?
提前致谢。