Glide AJAX returning [object, object]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2017 08:02 AM
I have a client script and script include to return a users info. I have to do this because the department field is a reference field on the user table. However, my script is returning [object, object] for all the variables.
What is wrong here?
Client Script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax('RequesterInfo');
ga.addParam('sysparm_name','requesterInfo');
ga.addParam('sysparm_preferred_first_name', g_form.getValue('u_requester_name'));
ga.getXML(showMessage);
function showMessage(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
answer = answer.evalJSON(); //Transform the JSON string to an object
g_form.setValue('u_requester_department', answer.var1);
g_form.setValue('u_requester_email', answer.var2);
g_form.setValue('u_requester_telephone', answer.var3);
}
}
Script Include:
var RequesterInfo = Class.create(); RequesterInfo.prototype = Object.extendsObject(AbstractAjaxProcessor, {
requesterInfo: function() {
var user = this.getParameter('sysparm_preferred_first_name');
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id',user);
gr.query();
gs.log (gr.getRowCount() + 'records found');
if(gr.next()){
var obj = {};
obj.var1 = gr.department.name;
obj.var2 = gr.email;
obj.var3 = gr.u_extension;
var json = new JSON();
var answer = json.encode(obj);//JSON formatted string
return answer;
}
type: 'RequesterInfo'
}});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2017 08:08 AM
Hi,
replace these lines
- obj.var1 = gr.department.name;
- obj.var2 = gr.email;
- obj.var3 = gr.u_extension;
with
- obj.var1 = gr.department.name + '';
- obj.var2 = gr.email + '';
- obj.var3 = gr.u_extension + '';
(please mark helpful/like/correct if it helps)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-17-2020 04:52 AM
thanks Rushit,,really helpful!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-17-2020 05:23 AM
Please try below code if it helps
var RequesterInfo = Class.create(); RequesterInfo.prototype = Object.extendsObject(AbstractAjaxProcessor, {
requesterInfo: function() {
var user = this.getParameter('sysparm_preferred_first_name');
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id',user);
gr.query();
gs.log (gr.getRowCount() + 'records found');
if(gr.next()){
var obj = {};
obj.var1 = ''+gr.department.name;
obj.var2 = ''+gr.email;
obj.var3 = ''+gr.u_extension;
return JSON.stringify(answer);
}
type: 'RequesterInfo'
}});
----
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax('RequesterInfo');
ga.addParam('sysparm_name','requesterInfo');
ga.addParam('sysparm_preferred_first_name', g_form.getValue('u_requester_name'));
ga.getXML(showMessage);
function showMessage(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var obj = JSON.parse(answer);
g_form.setValue('u_requester_department', obj.var1);
g_form.setValue('u_requester_email', obj.var2);
g_form.setValue('u_requester_telephone', obj.var3);
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-03-2021 06:28 AM
what does return JSON.stringify(answer); return? I don't see "answer" declared anywhere. I might be wrong, but shouldn't you pass return JSON.stringify(obj)?