2010-03-14 4 views
1

J'utilise le code suivant pour publier sur le serveur qui est ensuite envoyé à une requête MYSQL pour trouver des correspondances via la recherche.JQUERY AJAX, Problèmes avec les espaces envoyés au serveur, Pourquoi?

$.ajax({ 
url: '/search/spotlight/', 
data: "q=" + $(this).val(), 
success: function(data) { 
} 
}); 

Lorsque la valeur de Q contient des espaces, cela crée des problèmes. Je me demande si je gère cela correctement? Dois-je encoder la valeur de l'appel AJAX? Ou est-ce un problème sur mon back-end, ce qui est ColdFusion

En ce moment JQUERY est l'affichage de ce qui suit au serveur: /Recherche/projecteur/q =% FirstName 20LastName

est ce droit?

Répondre

4

Cela semble correct côté client. Utilisez simplement URLDecode sur la chaîne dans ColdFusion, pour transformer% 20 en espace (ainsi que d'autres caractères spéciaux).

5

/search/spotlight/?q=FirstName%20LastName est une chaîne d'URL valide. Ma conjecture est que votre script côté serveur doit mieux gérer les choses.

BTW vous n'avez pas besoin de construire la chaîne de requête vous jquery peut le faire pour vous:

$.ajax({ 
url: '/search/spotlight/', 
data: {"q": $(this).val()}, 
success: function(data) { 
} 
}); 
1

il est juste ... 20% signifie l'espace

mais vous devez définir les données comme ceci

data: {'q': $(this).val()} 
Questions connexes