Question
· Dec 14, 2017

Get a custom response server header with Cache

Hello,

I'm using Cache 2016.

I try to get a property set in my server response header.

I tried to get it in %request and %response but without success ...

Some one have an idea ?

Here an example of what i try to get :

Thank you

Sébastien

Discussion (6)0
Log in or sign up to continue

To set any response header, you should overwrite OnPreHTTP method in your CSP Page class.

 Class User.Page Extends %CSP.Page
{

ClassMethod OnPage() As %Status
{
  &html<<html>
<head>
</head>
<body>>
  ; To do...
  &html<</body>
</html>>
  Quit $$$OK
}

/// Event handler for <b>PreHTTP</b> event: this is invoked before
/// the HTTP headers for a CSP page have been sent. All changes to the
/// <class>%CSP.Response</class> class, such as adding cookies, HTTP headers,
/// setting the content type etc. must be made from within the OnPreHTTP() method.
/// Also changes to the state of the CSP application such as changing
/// %session.EndSession or %session.AppTimeout must be made within the OnPreHTTP() method.
/// It is prefered that changes to %session.Preserve are also made in the OnPreHTTP() method
/// as this is more efficient, although it is supported in any section of the page.
/// Return <b>0</b> to prevent <method>OnPage</method> from being called.
ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
  Do %response.SetHeader("X-MyHeader", "some info")
  quit 1
}

}