The key insight with returning multiple values from GlideAjax is that the server can only return a single string value, but you can pack multiple values into that string using JSON.stringify() on the server and JSON.parse() on the client. Most developers make their first attempt with multiple separate AJAX calls, which creates unnecessary network overhead and complex callback chains. The platform's asynchronous nature means you can't rely on call order, so a single call returning structured data is both faster and more reliable.
When to use this pattern
- When you need to populate multiple form fields based on a single user selection or form load
- When you're aggregating data from multiple tables that requires server-side ACL enforcement
- When you need both calculated values and conditional logic results in a single round trip
- When building dependent field validations that require multiple reference checks
When NOT to use this pattern
- Don't use this for large datasets —
GlideAjaxresponses have size limits, use REST APIs instead - Don't use this when you only need a single value — the JSON parsing overhead isn't worth it
- Don't use this for data that changes frequently during a single form session — you'll get stale data
- Don't use this in loops or repeated calls — cache the result or restructure your approach
Key behaviors and gotchas
- Always check for
nullor empty answer strings — server errors return empty responses, not exceptions - Wrap
JSON.parse()in try-catch — malformed JSON from server will crash your client script silently - Use default values when setting form fields — missing JSON properties will set fields to
undefinedwhich displays as empty - Boolean values stringify to
'true'/'false'strings, but parse back to actual booleans correctly - Date values must be converted to strings server-side —
GlideDateTimeobjects don't stringify to useful values - The response size limit is approximately 4MB — large JSON responses will be truncated without warning
Never return sensitive data like passwords or API keys in the JSON response — GlideAjax responses are visible in browser developer tools and can be intercepted by client-side code.
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.