1
votes

Axios Get request return html pas data SPA

a besoin d'aide. J'essaye de récupérer des données de ma base de données en utilisant axios. Mon backend est Laravel. J'ai une requête http de statut 200 mais elle renvoie le code HTML entier et non les données que j'attends.

Voici mon code d'itinéraire

public function ajaxCall(){
     return response(Post::all());
}

Voici mon code pour Home.vue pour la demande Axios

 export default {
    components: {addForm},
    data () {
        return{
            posts:[]
        }
    },
    created() {
      axios.get('/home').then(response => this.posts = response.data);
    }
}

Pour ma manette

Route::get('/home', 'PostController@ajaxCall');

Route::post('/home', 'PostController@store');
Route::get('/{any?}', function () {
        return view('welcome');
    });


0 commentaires

3 Réponses :


0
votes

Il semble que vous arriviez à la méthode ajaxCall () en utilisant la route '/ home', mais avec axios, vous appuyez sur "/" qui renvoie une vue appelée Welcome. Peut-être avez-vous besoin de changer le chemin que vous utilisez dans axios en «/ home»?


3 commentaires

J'ai pu changer cela. Toujours le même. Je n'ai pas obtenu les données auxquelles je m'attendais.


À quoi ressemble le code HTML que vous récupérez? Je fais beaucoup de choses avec Vue avec un backend Laravel. Je finis par utiliser Postman pour tester les itinéraires. Parfois, Laravel ne reconnaît pas toutes les routes immédiatement. La configuration que j'ai utilise des modules caféinés, et je dois exécuter soit artisan cache: clear ou modules artisan: optimiser pour afficher les itinéraires. Sinon, je ne vois pas grand-chose de différent de ce que je ferais. J'utilise généralement la méthode montée () au lieu de created (), mais cela ne devrait pas avoir d'importance. (Je ne connais pas très bien Vue).


Je fais quelques mises à jour sur mes codes. Maintenant, il renvoie les données dont j'ai besoin, malheureusement, la vue ou toute vue de composant ne se charge pas. Je ne sais vraiment pas ce qui se passe.



0
votes

Il peut être tard, mais peut-être que quelqu'un d'autre cherche la solution J'étais également confronté à cela dans SPA en utilisant laravel et VUE.

Route::get('/{any}', 'SinglePageController@index')->where('any', '.*');

SPA a cette route, donc chaque fois que vous écrivez une autre route, votre application vous redirigera vers la page d'accueil, pour éviter cela déplacez cette route à la fin de votre web.php ou écrivez vos autres itinéraires dans le fichier api.php.


0 commentaires

0
votes

Dans mon cas, je l'ai résolu en changeant la méthode GET en méthode POST. Essayez ça. Cela pourrait aider


0 commentaires