Erreur 500 (RuntimeError) rencontrée lors de la récupération des données : solution au problème pour axios et nuxtjs
P粉327903045
2023-08-25 11:06:29
<p>J'ai créé une page basée sur un blog en utilisant WordPress comme API et Nuxt.js comme framework JavaScript.
Le problème se produit dans mon fichier _slug.vue. Lorsque je navigue vers une page de blog (projet) individuelle, les articles de blog individuels s'affichent correctement. Cependant, si je recharge une seule page d'article de blog ou si je saisis simplement l'URL, la console affiche l'erreur : GET <em>url</em> </p>
<pre class="brush:php;toolbar:false;"><template>
<div class="projet unique">
<En-tête />
<h1>{{project.title.rended}}</h1>
<article v-html="project.content.rendeded"></article>
<CliquezPourAction />
</div></pré>
<pre class="brush:php;toolbar:false;"><script>
/* eslint-disable */
importer des axios depuis 'axios'
exporter par défaut{
données() {
retour {
projet: {}
}
},
async asyncData({params}){
return wait axios.get('https://my-api.wp/wp-json/wp/v2/project/' + params.id)
.then((res) => {
retour {
projet : res.data
}
}).catch(fonction (erreur) {
si (erreur.réponse) {
// Requête effectuée et serveur répondu
console.log(erreur.response.data);
console.log(erreur.response.status);
console.log(erreur.response.headers);
} sinon si (erreur.request) {
// La demande a été faite mais aucune réponse n'a été reçue
console.log(erreur.request);
} autre {
// Quelque chose s'est produit lors de la configuration de la requête qui a déclenché une erreur
console.log('Erreur', erreur.message);
}
});
}
}
</script></pre>
<p>以及一个项目的链接:</p>
<pre class="brush:php;toolbar:false;"><nuxt-link :class="'item ' + project._embedded['wp:term'][0].map(el => ; el.name.toLowerCase().join(' ')" v-for="projet dans les projets" :key="project.id" :to="{name : 'projekte-slug', params : { slug : project.slug, id : project.id}}"></pre>
<p>目标在nuxt.config.js中是静态的。</p>
<h1><strong>编辑</strong></h1>
<p> id的值。为了解决这个问题,我通过API使用slug获取了项目,并显示了所有属性(例如标题、内容等)</p>
<pre class="brush:php;toolbar:false;">async asyncData({ params, $axios }) {
essayer {
console.log(params.slug);
const project = attendre $axios.$get(`https://my-api.wp/wp-json/wp/v2/project?slug=${params.slug}&_embed`)
retourner { projet }
} attraper (erreur) {
...
}</pre></p>
asyncData
Ne se redéclenchera pas lors de l’actualisation de la page ou de la saisie directe de l’URL.Si vous souhaitez obtenir des données lorsque ces événements se produisent, vous pouvez utiliser
fetch()
hooks ou middleware.Réponse modifiée
Avant de continuer, assurez-vous d'avoir installé
@nuxtjs/axios
: https://axios.nuxtjs.org/setup