Web standards
Edit this page on GitHubThroughout this documentation, you'll see references to the standard Web APIs that SvelteKit builds on top of. Rather than reinventing the wheel, we use the platform, which means your existing web development skills are applicable to SvelteKit. Conversely, time spent learning SvelteKit will help you be a better web developer elsewhere.
These APIs are available in all modern browsers and in many non-browser environments like Cloudflare Workers, Deno and Vercel Edge Functions. During development, and in adapters for Node-based environments (including AWS Lambda), they're made available via polyfills where necessary (for now, that is — Node is rapidly adding support for more web standards).
In particular, you'll get comfortable with the following:
Fetch APIspermalink
SvelteKit uses fetch for getting data from the network. It's available in hooks and endpoints as well as in the browser.
A special version of
fetchis available inloadfunctions for accessing data directly from endpoints while preserving credentials.
Besides fetch itself, the Fetch API includes the following interfaces:
Requestpermalink
An instance of Request is accessible in hooks and endpoints as event.request. It contains useful methods like request.json() and request.formData() for e.g. getting data that was posted to an endpoint.
Responsepermalink
An instance of Response is returned from await fetch(...). Fundamentally, a SvelteKit app is a machine for turning a Request into a Response.
Headerspermalink
The Headers interface allows you to read incoming request.headers and set outgoing response.headers:
src/routes/what-is-my-user-agent.js
tsexport functionget (event ) {// log all headersType 'Headers' is not an array type.2461Type 'Headers' is not an array type.console .log (...event .request .headers );return {body : {// retrieve a specific headeruserAgent :event .request .headers .get ('user-agent')}};}
URL APIspermalink
URLs are represented by the URL interface, which includes useful properties like origin and pathname (and, in the browser, hash). This interface shows up in various places — event.url in hooks and endpoints, $page.url in pages, from and to in beforeNavigate and afterNavigate and so on.
URLSearchParamspermalink
Wherever you encounter a URL, you can access query parameters via url.searchParams, which is an instance of URLSearchParams:
tsconstfoo =url .searchParams .get ('foo');