/ / jQuery-tokeninput n'affiche pas les résultats de la recherche - jquery, jquery-tokeninput

jQuery-tokeninput n'affiche pas les résultats de la recherche - jquery, jquery-tokeninput

On dirait que j'ai un problème environnemental, mais je ne sais pas comment procéder pour le déboguer.

J'utilise jQuery-tokeninput et tout fonctionne bien sur localhost. Cependant, une fois transféré dans ma boîte de production, il cesse de fonctionner.

J'utilise chromes "Developer Tools" pour résoudre des problèmestirer. L'appel JQuery fonctionne quelque peu car les données sont collectées à partir de la base de données et je peux le voir dans la réponse. Tout semble bon, mais cela ne rend pas la liste déroulante et reste bloqué sur "Recherche en cours". Aucune erreur n’est générée dans les "Outils de développement" de Chrome et je ne vois aucune erreur liée dans les journaux Apache.

Je suis assez coincé ici car aucune erreur ne rend assez difficile le dépannage.

Toutes les idées / suggestions seraient vraiment appréciées!

MODIFIER

Bien que la réponse de cet appel soit identique entre les deux environnements, la liste complète des éléments d'en-tête ne l'est pas.

En regardant les en-têtes, il y a des éléments ne correspondant pas.

Localhost (Windows evironment):

Request URL:http://localhost/dropdown_getcontact.php?q=raq
Accept:application/json, text/javascript, */*; q=0.01
X-Requested-With:XMLHttpRequest
Query String Parametersview sourceview URL encoded
q:raq

Environnement de production (environnement Linux):

Request URL:http://localhost/dropdown_getcontact.php?callback=jQuery110204361302594188601_1392780655198&q=raq&_=1392780655199
Accept:*/*
Query String Parametersview sourceview URL encoded
callback:jQuery110204361302594188601_1392780655198
q:raq
_:1392780655199

À votre santé, ck

Réponses:

1 pour la réponse № 1

Un article complet, pour les futurs Googlers:

Les appels AJAX interdomaines ne sont pas autorisés. Pour résoudre ce problème, vous devez utiliser JSONP. Voici un bel exemple de la façon de le faire ici.

Le plugin jQuery TokenInput automatiquementdétecte les appels interdomaines et active automatiquement le "mode JSONP", qui est ce que j’imaginais empêchait que le JSON renvoyé soit affiché ici. Je suppose également que Chrome a assoupli les règles sur les requêtes AJAX interdomaine lorsque localhost est le domaine, car il s’agit beaucoup moins d’une faille en matière de sécurité. Par conséquent, votre JSON a été renvoyé (ce qui n’aurait pas été le cas, si cela avait été le cas. hébergé sur n’importe quel troisième domaine qui n’était ni localhost, ni votre serveur de production), mais le plug-in s’attendait à ce que JSONP soit utilisé et ne pouvait donc pas traiter l’entrée JSON standard. Un petit bug potentiel dans le plug-in, si les autres navigateurs se comporter de la même manière.

En tant que point de référence, vous pouvez définir explicitement si vous souhaitez être en mode crossDomain via un paramètre de configuration.

crossDomain = true;

Par curiosité, essayez notamment crossDomain = false dans l'initiation de votre configuration d'origine, et voir si cela fonctionne.