我已经使用 Get 方法创建了脚本化的 Rest API,输入参数作为相应的事件编号,然后它应该生成一个 URL,生成 URL 后我需要重定向到相应的生成的 URL,但不幸的是重定向不起作用,请任何人指导。
Code Snippet:
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
// implement resource here
var redirectLink, incidentShortDesc;
var instanceURL = gs.getProperty('glide.servlet.uri', '');
var targetURL = instanceURL+'/now/sow/record/incident/';
gs.addInfoMessage(instanceURL);
var pathParams = request.pathParams;
var number = pathParams.number;
gs.addInfoMessage(number);
var incident_Array = [];
var gr = new GlideRecord('incident');
gr.addQuery('number',number);
gr.query();
while(gr.next()) {
var obj = {};
var sys_id = gr.getValue('sys_id');
var redirect_url = targetURL+sys_id;
obj.sys_id = gr.getValue('sys_id');
obj.number = gr.getValue('number');
obj.short_description = gr.getValue('short_description');
obj.description = gr.getValue('description');
obj.location = gr.getDisplayValue('location');
obj.state = gr.getDisplayValue('state');
obj.url=redirect_url;
incident_Array.push(obj);
}
response.setBody(incident_Array);
this.response.sendRedirect(redirect_url);
if (!gs.isLoggedIn()) {
redirectLink = redirect_url + sys_id;
gs.addErrorMessage('Please login and try your request again.');
//Redirect the user to the login page.
redirectTo(response, redirectLink);
return;
}
redirectLink = redirect_url + sys_id;
gs.addInfoMessage('A new Incident has been generated. You have been redirected to the new Incident record. ');
redirectTo(response, redirectLink);
function redirectTo(response, redirectURL) {
response.setHeader(
"Cache-Control",
"no-cache,no-store,must-revalidate,max-age=-1"
);
response.setHeader(
"Pragma",
"no-store,no-cache"
);
//This doesn't really matter, but the redirect may sometimes fail without this header.
response.setHeader(
"Expires",
"Thu, 01 Jan 1970 00:00:00"
);
response.setStatus(301); //301 = Redirect
response.setLocation(redirectURL);
return true;
}
})(请求,响应);