Daha iyi yol:
encodeURIComponent aşağıdakiler dışındaki tüm karakterlerden kaçar:alphabetic, decimal digits, - _ . ! ~ * ' ( )
Sunucuya beklenmedik istekleri önlemek için, kullanıcı tarafından girilen parametrelerde URI'nin bir parçası olarak geçirilecek olan encodeURIComponent öğesini çağırmalısınız. Örneğin, bir kullanıcı değişken yorum için "Kekik ve zaman = tekrar" yazabilir. Bu değişken üzerinde encodeURIComponent kullanılmaması tekrar comment = Thyme% 20 & time = değerini verecektir. Ve işareti ve eşittir işaretinin yeni bir anahtar ve değer çiftini işaretlediğine dikkat edin. Dolayısıyla, "Kekik ve zaman = tekrar" a eşit bir POST yorum tuşuna sahip olmak yerine, biri "Kekik" e ve diğerine (zaman) eşit olan iki POST anahtarınız vardır.
/ X-www-form-urlencoded (POST) uygulaması için, http://www.w3.org/TR/html401/interac...m-content-type uyarınca boşluklar '+' ile değiştirilmelidir. "% 20" ek "+" ile değiştirilen bir encodeURIComponent değiştirme işlemi takip edilebilir.
Birisi RFC 3986'ya (bu!, ', (,) Ve * ayrılmış) uymak konusunda daha sıkı olmak isterse, bu karakterlerin resmi URI sınırlayıcı kullanımları olmamasına rağmen, aşağıdakiler güvenle kullanılabilir:
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}
$.param
.