2010-09-23 8 views
5

Próba przekazania spacji wraz z wywołaniem ajax.Wartość przesyłająca, w tym spacje na wezwanie Ajax

"Słowo" zostało przekazane tak samo jak "słowo" w to wierzę.

Z drugiej strony, dwa słowa muszą zostać wysłane całkowicie za pomocą połączenia.

„słowo sekund”, ale nie takie same jak „słowem” drugiego

Mam przyciąć przed wywołaniem lub zrobić to na skrypcie po stronie serwera? Jak mogę wysłać również spacje?

Odpowiedz

1

wiem, że to jest stary kwes ale chciałbym zaznaczyć, że zaakceptowana odpowiedź sugeruje funkcję, która jest nieaktualna od wersji 1.5 języka JavaScript.

Zamiast tego należy użyć opcji encodeURI() lub encodeURIComponent() do wysyłania spacji i innych znaków specjalnych.

var param = encodeURIComponent("word second "); 
console.log(param); // outputs 'word%20second%20' 

PHP na drugim końcu będzie obsługiwać dekodowanie automatycznie. Dzięki temu możesz przyciąć pomieszczenia, w których jest to najbardziej praktyczne. Jeśli naprawdę nie ma to znaczenia technicznego, przycinam spacje w kodzie JavaScript za pomocą funkcji trim(), ponieważ oszczędza ona niewielką przepustowość sieci i nieznacznie zmniejsza obciążenie serwera przez przycinanie strony klienta.

0

Najprostszy sposób, jak sądzę, jest encodeURIComponent string w javascript przed wysłaniem XMLHttpRequest, a następnie urldecode to w PHP

+1

kod adresu URL jest wykonywany automatycznie – zerkms

4

Aby umożliwić parametr spacji itp cię będzie chciał użyć funkcji javascript escape() [W3Schools].

escape('hello world ') = 'hello%20world%20'; 

obchodzenia się na stronie PHP automatycznie dekodowania/cofanie zmiany parametru przywrócenia przestrzenie (wraz z innymi postaciami, które nie mogą być częścią wartości danego parametru po wysłaniu przez AJAX, takie jak „=” lub " &”.

ciągu PHP, jeśli chce zdejmować żadnych spacji początkowych lub końcowych, można użyć PHP trim() [PHP.net] funkcja.

trim('hello world ') = 'hello world'; 
Powiązane problemy