बेहतर तरीका:
एनकोडर्कोम्पोनेंट निम्नलिखित को छोड़कर सभी वर्णों से बच जाता है:alphabetic, decimal digits, - _ . ! ~ * ' ( )
सर्वर से अनपेक्षित अनुरोधों से बचने के लिए, आपको किसी भी उपयोगकर्ता द्वारा दर्ज किए गए मापदंडों पर एन्कोडर्कोम्पोनेंट को कॉल करना चाहिए जो एक यूआरआई के भाग के रूप में पारित किया जाएगा। उदाहरण के लिए, एक उपयोगकर्ता एक चर टिप्पणी के लिए "थाइम और समय = फिर से" टाइप कर सकता है। इस चर पर एन्कोडर्कोम्पोनेंट का उपयोग नहीं करने पर टिप्पणी = थाइम% 20 और समय = फिर से मिलेगा। ध्यान दें कि एम्परसेंड और बराबर चिह्न एक नई कुंजी और मूल्य जोड़ी को चिह्नित करते हैं। इसलिए "थाइम & टाइम = फिर से" के बराबर एक POST टिप्पणी कुंजी होने के बजाय, आपके पास दो POST कुंजी हैं, एक "Thyme" के बराबर और दूसरा (समय) फिर से बराबर।
आवेदन / x-www-form-urlencoded (POST) के लिए, http://www.w3.org/TR/html401/interac...m-content-type के अनुसार , रिक्त स्थान को '+' द्वारा प्रतिस्थापित किया जाना है, इसलिए एक "+" के साथ "% 20" के अतिरिक्त प्रतिस्थापन के साथ एक एन्कोडर्कोम्पोनेंट प्रतिस्थापन का पालन करना चाह सकता है।
यदि कोई RFC 3986 (जो आरक्षित है ?, ',', ',' और ') का पालन करने में अधिक कठोर होना चाहता है, भले ही इन वर्णों में कोई औपचारिक यूआरआई परिसीमन उपयोग न हो, निम्नलिखित सुरक्षित रूप से उपयोग किया जा सकता है:
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}
$.param
।