RequestHook.onRequest Method
Handles a request before it is sent.
class TemplateRequestHook extends RequestHook {
async onRequest (event) {
// ...
}
}
The onRequest
method’s event
object exposes the following fields.
Property | Type | Description |
---|---|---|
event.requestOptions |
RequestOptions | Contains request parameters. You can use it to change request parameters before a request is sent. |
event.isAjax |
Boolean | Specifies if a request is performed using AJAX. |
async onRequest (event) {
if (event.isAjax) {
console.log(event.requestOptions.url);
console.log(event.requestOptions.credentials.username);
event.requestOptions.headers['custom-header'] = 'value';
}
}
RequestOptions
The RequestOptions
object contains request parameters.
Property | Type | Description |
---|---|---|
headers |
Object | Request headers in the property-value form. |
body |
Buffer | The request body. |
url |
String | Read-only. The URL to which the request is sent. Refer to Change Request’s URL for details. |
protocol |
String | The protocol to use. Default: http:. |
hostname |
String | The alias for the host. |
host |
String | The domain name or IP address of the server to issue the request to. Default: localhost. |
port |
Number | The port of the remote server. Default: 80. |
path |
String | The request path. Should include query string if any. E.G. ‘/index.html?page=12’. An exception is thrown when the request path contains illegal characters. Currently, only spaces are rejected but that may change in the future. Default: ‘/‘. |
method |
String | The string specifying the HTTP request method. Default: ‘GET’. |
credentials |
Object | Credentials to use for Windows (NTLM) or Basic authentication. HTTP Basic authentication requires a username and a password . NTLM authentication services may need to know your workstation and domain . See HTTP Authentication. |
proxy |
Object | If a proxy is used, the property contains information about its host , hostname , port , proxyAuth , authHeader , and bypassRules . |
Change Request’s URL
Since the RequestOptions URL
parameter is read-only, you cannot use it to update the request’s URL. To change the URL, update the following RequestOptions parameters: protocol
, host
, hostname
, port
, path
, and headers
.
class CustomRequestHook extends RequestHook {
onRequest (e) {
e.requestOptions.protocol = 'https:';
e.requestOptions.host = 'devexpress.github.io';
e.requestOptions.hostname = 'devexpress.github.io';
e.requestOptions.port = '';
e.requestOptions.path = '/testcafe/example/thank-you.html';
e.requestOptions.headers['host'] = 'devexpress.github.io';
}
onResponse (responseEvent) {
}
}