34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# Module `fetch`
|
|
|
|
Ce module permet l'accès à des ressources distantes (sur Internet) depuis votre application.
|
|
|
|
## Fonctions de rappel
|
|
|
|
Pour permettre aux utilisateurs d'accéder à des ressources distantes, vous devez déclarer la fonction `onClientFetch(ctx: Context, url: string, remoteAddr: string)` dans le fichier `server/main.js` de votre application.
|
|
|
|
### `onClientFetch(ctx: Context, url: string, remoteAddr: string)`
|
|
|
|
#### Usage
|
|
|
|
**Côté client**
|
|
```js
|
|
// Création d'une URL "locale" permettant d'accéder à la ressource distante
|
|
var url = Edge.Client.externalUrl("http://example.com")
|
|
|
|
// Vous pouvez utiliser l'URL comme attribut `src` d'une balise <img> par exemple
|
|
// ou effectuer une requête fetch() avec celle ci.
|
|
fetch(url).then(res => res.text()).then(content => console.log(content));
|
|
```
|
|
|
|
**Côté serveur**
|
|
```js
|
|
function onClientFetch(ctx, url, remoteAddr) {
|
|
// Autoriser la récupération de l'URL demandée ou non
|
|
// Dans cet exemple, seule l'URL externe 'http://example.com' est autorisée
|
|
// Les autres URLs recevront une erreur HTTP 403 - Forbidden
|
|
var authorized = url === "http://example.com"
|
|
|
|
return { allow: authorized };
|
|
}
|
|
```
|