Bug #15352
cellule recherche : ce qui est après un # n'est pas envoyé
0%
Description
En fait c'est parce que le $.get(url, data, ...)
qui est lancé pour faire l'appel ajax pour construire la réponse, n'encode pas data.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-searchcell-use-encodeURIComponent-in-ajax-query-1535.patch 0001-searchcell-use-encodeURIComponent-in-ajax-query-1535.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
Pas ack, le souci est entre la chaise et le clavier je pense :) Il n'est normalement pas nécessaire d'encoder, et tout cas la doc jquery n'en parle nulle part et un test de jQuery.param() encode bien les '#'.
Mis à jour par Thomas Noël il y a environ 7 ans
- Patch proposed changé de Oui à Non
Effectivement c'est pas là que ça se passe.
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-searchcell-encode-and-quote-q-value-in-search-url-15.patch 0001-searchcell-encode-and-quote-q-value-in-search-url-15.patch ajouté
- Patch proposed changé de Non à Oui
Voilà il fallait encoder correctement lors du « url % {'q': query}
» qui poser la chaîne à rechercher dans l'URL du système distant (zoo dans mon usage actuel).
Et non, j'ai pas trouvé plus élégant qu'un explicite quote(query.encode('utf-8'))
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
Ça a l'air bon. Mais le code est moche (voir https://docs.djangoproject.com/fr/1.10/ref/utils/#django.utils.http.urlencode). J'ai l'impression qu'on est obligé de mettre un un %(q)s dans search_services['url']
alors qu'on pourrait juste faire url + '?' + urlencode({'q': whatever})
.
Mis à jour par Thomas Noël il y a environ 7 ans
Benjamin Dauvergne a écrit :
qu'on pourrait juste faire
url + '?' + urlencode({'q': whatever})
.
Ouaip. Mais ça voudra dire qu'on ne se permet d'interroger que des systèmes qui prennent « ?q= ». On peut sans doute considérer que c'est ainsi, et faire que les APIs de recherche interne dans les briques de Publik suivent cette norme. Je vais faire le patch avec cette alternative.
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-searchcell-change-URL-format-a-q-parameter-is-always.patch 0001-searchcell-change-URL-format-a-q-parameter-is-always.patch ajouté
Voilà un patch plus "propre" mais qui oblige à des API de recherche en ?q=...
Mis à jour par Frédéric Péters il y a environ 7 ans
La version initiale, qui ne nous force pas au ?q=, elle me convient quand même plutôt bien.
Mis à jour par Thomas Noël il y a environ 7 ans
- Statut changé de En cours à Résolu (à déployer)
Moi aussi. Poussée donc cette version avec {'q': quote(query.encode('utf-8'))}
commit 1709b97f09c3edf5a86853a6dfd42b09572ea90b Author: Thomas NOEL <tnoel@entrouvert.com> Date: Wed Mar 8 16:58:00 2017 +0100 searchcell: encode and quote q value in search url (#15352)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
searchcell: encode and quote q value in search url (#15352)