pub struct XhrRequest {
pub method: String,
pub url: String,
pub headers: Option<HashMap<String, String>>,
pub body: Option<String>,
pub with_credentials: Option<bool>,
}Expand description
Replay an HTTP request through a raw XMLHttpRequest inside the page.
Use this when FetchRequest returns “Failed to fetch” but
network_log shows the app’s own successful request had kind: xhr.
The XHR transport differs from fetch in several ways that matter for
WAF / CORS / service-worker routing:
- XHR does not send
Sec-Fetch-Mode: cors/Sec-Fetch-Dest: emptyheaders the same way, which some edge rules use to block tool replays. - XHR inherits the document’s full cookie jar and Origin by default;
there is no
credentials: 'omit'equivalent. - Service workers often pass XHR through untouched while intercepting
fetch, so a SW-rewriting auth header won’t affect this path. - Simple XHRs (GET/POST with allowlisted headers) skip CORS preflight on the same rules as the original page script.
Request body is sent verbatim; set Content-Type explicitly in
headers when sending JSON.
Fields§
§method: String§url: String§headers: Option<HashMap<String, String>>§body: Option<String>§with_credentials: Option<bool>When true (default), sets xhr.withCredentials = true so cookies
and Authorization travel cross-origin. Set false to mimic a
public-asset request.
Trait Implementations§
Source§impl Clone for XhrRequest
impl Clone for XhrRequest
Source§fn clone(&self) -> XhrRequest
fn clone(&self) -> XhrRequest
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for XhrRequest
impl Debug for XhrRequest
Auto Trait Implementations§
impl Freeze for XhrRequest
impl RefUnwindSafe for XhrRequest
impl Send for XhrRequest
impl Sync for XhrRequest
impl Unpin for XhrRequest
impl UnsafeUnpin for XhrRequest
impl UnwindSafe for XhrRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more