2017-03-29 2 views
0

J'ai 2 projets, appelons-les backend et frontend. Backend est un projet Symfony3 et Frontend est une simple page html avec javascript.requête ajax sur le projet 1 appel projet 2 symfony retour jeton inattendu <

Je voudrais appeler un URL particulier du backend à partir du frontend de sorte qu'il renvoie une chaîne (un URL).

Alors ce que j'essayé de faire est une simple requête get ajax avec l'url backend je voudrais demander, mais cela revient

SyntaxError: Unexpected token "<"

(pour html dataType) et

SyntaxError: Unexpected token.

(pour json et jsonp dataType).

J'ai essayé avec dataType json, jsonp, html en adaptant chaque fois la réponse du contrôleur pour répondre respectivement à json, json et html.

Lorsque j'essaie cette demande de facteur tout fonctionne très bien et je reçois soit mon json ou html.

Il y a évidemment quelque chose que je ne comprends pas.

Y at-il quelqu'un qui pourrait m'expliquer ce que je fais mal et comment je pourrais le faire.

Ci-dessous est mon projet frontend demande ajax (pour html dans ce cas, mais j'ai laissé la partie JSON a commenté que j'ai jused pour le test en cas de ...)

$.ajax({ 
       url: 'http://sevignemiroir.local/display', 
       type: 'GET', 
       dataType: "html", 
       //dataType: "jsonp" 
       success: function(response) { 
        console.log('success'); 
        console.log(response); 
       }, 
       error: function (response) { 
        console.log('error'); 
        console.log(response); 
       } 
      }) 

Et cette ma réponse de mon contrôleur de symfony back-end

public function indexAction() 
{ 
    //return $this->json('toto'); 
    return $this->render('display/test.html.twig', [ 
     'toto' => 'toto' 
    ]); 
} 

le fichier test.html.twig:

<div>test</div> 

Je suis un peu confus:

  • Dois-je appliquer un format spécifique à la réponse pour le faire fonctionner?
  • Y a-t-il quelque chose que je devrais configurer dans mon contrôleur pour autoriser les demandes provenant de l'extérieur du projet?
  • Le problème provient-il d'un problème inter-domaines?
  • J'ai entendu parler de FOSRestBundle, est-il obligatoire d'utiliser un tel bundle pour permettre l'envoi de données depuis l'extérieur du projet? Quelles sont les meilleures pratiques pour appeler des données d'un projet vers un autre projet?

Ce sont les questions que je suis confus avec et si quelqu'un serait assez aimable pour l'expliquer, ce serait grandement apprécié!

Je ne sais pas si cela est important, mais je suis en utilisant MAMP et les deux projets ont virtualhosts configuré

Un grand merci à ceux qui prendront le temps de lire ce :)

+0

Où voyez-vous votre inattendu? message? Votre console de navigateur ou autre? (Si oui pouvez-vous nous coller la sortie du résultat?) Avez-vous regardé http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain? – DFayet

+0

Avez-vous essayé un format plus générique comme 'application/xml'? – dbrumann

+0

@dbrumann: essayé mais toujours NOK – soul

Répondre

0

Il travaille maintenant mais. .. Je ne sais pas pourquoi. J'installais divers bundle sur symfony (FOSRest, NelmioCors, JMS) et j'ai essayé un plugin jquery cross-plugin, mais ça fonctionnait mais quand j'ai supprimé al, ils fonctionnaient maintenant:/