webscript没有重定向错误

时间:2013-09-19 08:58:13

标签: javascript alfresco status web-scripting

我有以下webscript(disable-affiliate.put.js

var spaceNode = customSpacesService.getAffiliatedSpace(args.id) ;

if(spaceNode == null){
    status.code = 404;
    status.message = "Can't find affiliated";
    status.redirect = true;
}

spaceNode.addAspect ("cnrps:replaceable");
spaceNode.properties["cnrps:motifReplace"] = args.motif;
var affNonValides = customSpacesService.getEntrepotsDesAffiliesSupprimesErrones();
spaceNode.move(affNonValides);

问题是当spaceNode为空时,应该像往常一样返回状态模板,但会抛出一个异常,说Cannot call method "addAspect" of null

很明显,重定向没有发生,脚本执行继续,请帮助...

1 个答案:

答案 0 :(得分:2)

Web脚本引擎将执行您的脚本,之后将检查status变量以了解如何处理原始请求。这意味着您的Javascript 的执行流程不会在

行结束
status.redirect = true;

如果你看一下它,它实际上只是一个赋值而不是一个方法调用。 将使用spaceNode的代码放在else分支中,你就可以了:

var spaceNode = customSpacesService.getAffiliatedSpace(args.id) ;

if(spaceNode == null){
    status.code = 404;
    status.message = "Can't find affiliated";
    status.redirect = true;
}
else {
    spaceNode.addAspect ("cnrps:replaceable");
    spaceNode.properties["cnrps:motifReplace"] = args.motif;
    var affNonValides = customSpacesService.getEntrepotsDesAffiliesSupprimesErrones();
    spaceNode.move(affNonValides);
}