ServiceNow 脚本化 Rest API 重定向

问题描述 投票:0回答:1

我已经使用 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;
}

})(请求,响应);

http-redirect servicenow servicenow-rest-api
1个回答
0
投票

我想

this
不会起作用。检查一下类似的内容:gs.setRedirect('your_url')

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.