files/en-us/web/api/xmlhttprequest/setprivatetoken/index.md
{{APIRef("XMLHttpRequest API")}} {{AvailableInWorkers("window_and_worker_except_service")}}{{SeeCompatTable}}
The {{domxref("XMLHttpRequest")}} method setPrivateToken() adds private state token information to an XMLHttpRequest call, to initiate private state token operations.
setPrivateToken(privateToken)
privateToken
issuers {{optional_inline}}
operation is set to send-redemption-record, in which case the issuers array must be included.operation
token-request
token-redemption
send-redemption-record
refreshPolicy {{optional_inline}}
operation is set to token-redemption. Possible values are:
none
refresh
version
1, which is the only version that the specification supports. When specifying the privateToken option, this property is mandatory.None ({{jsxref("undefined")}}).
InvalidStateError {{domxref("DOMException")}}
XMLHttpRequest is not in an opened state, or {{domxref("XMLHttpRequest.send", "send()")}} has already been called on it.NotAllowedError {{domxref("DOMException")}}
operation is set to send-redemption-record, and the issues array was empty or not set, or one or more of the specified issuers are not trustworthy, HTTPS URLs.const hasToken = await Document.hasPrivateToken(`issuer.example`);
if (!hasToken) {
const request = new XMLHttpRequest();
request.open(
"POST",
"https://issuer.example/.well-known/private-state-token/issuance",
);
request.setPrivateToken({
version: 1,
operation: "token-request",
});
req.send();
}
const request = new XMLHttpRequest();
request.open(
"POST",
"https://issuer.example/.well-known/private-state-token/redemption",
);
request.setPrivateToken({
version: 1,
operation: "token-redemption",
refreshPolicy: "none",
});
req.send();
const hasRR = await Document.hasRedemptionRecord(`issuer.example`);
if (hasRR) {
const request = new XMLHttpRequest();
request.open("POST", "some-resource.example");
request.setPrivateToken({
version: 1,
operation: "send-redemption-record",
issuers: ["https://issuer.example"],
});
req.send();
}
{{Specifications}}
{{Compat}}