J'essaie d'interroger une API de devis pour un projet freeCodeCamp que je mets à jour vers React.js. J'essaie maintenant d'utiliser Fetch
ou Axios
pour interroger l'API mais met en cache la réponse dans le navigateur. Je sais que dans $ajax
il y a un { cache: false }
qui obligerait le navigateur à faire une nouvelle demande.
Est-il possible que je puisse faire la même chose avec Fetch
ou Axios
?
Le paramètre cache-control
semble déjà être défini sur max-age: 0
par Axios
.
Ceci est mon code que j'ai qui interroge l'API.
generateQuote = () => {
axios.get('https://quotesondesign.com/wp-json/posts?filter[orderby]=Rand&filter[posts_per_page]=1')
.then(response => {
const { title, content, link } = response.data[0];
console.log(title, content, link)
this.setState(() => ({ title, content, link }));
})
.catch(err => {
console.log(`${err} whilst contacting the quote API.`)
})
}
Bon alors j'ai trouvé une solution. J'ai dû définir un horodatage sur l'URL de l'API pour qu'il puisse effectuer un nouvel appel. Il ne semble pas y avoir de moyen de forcer axios
ou fetch
à désactiver le cache.
Voici à quoi ressemble mon code
axios.get(`https://quotesondesign.com/wp-json/posts?filter[orderby]=Rand&filter[posts_per_page]=1×tamp=${new Date().getTime()}`)
.then(response => {
const { title, content, link } = response.data[0];
console.log(title, content, link)
this.setState(() => ({ title, content, link }));
})
.catch(err => {
console.log(`${err} whilst contacting the quote API.`)
})