2015-10-05 6 views
13

मैं इसjQuery AJAX खाली स्थान के और एम्परसेंड मुद्दा

var apiOptions = { 
    url: url, 
    dataType: 'jsonp', 
    type: "GET", 
    success: success 
}; 

if(dataOptions) { 
    apiOptions.data = { 
     key: self.settings.key, 
     limit: self.limit, 
     address: dataOptions.address, 
    }; 
} 
$.ajax(apiOptions); 

की तरह कुछ कर रहा हूँ और यह के अलावा सब कुछ के लिए ठीक काम करता है जब मैं "&" है, तो एक ampersand के साथ स्पेस। तो अनुरोध पैरामीटर "D+&+D,+enterprisess" या D+%26+D%2C जैसा दिखता है। यह तब सर्वर पर 404 देता है।

कोई विचार यहां क्या करना है?

+0

उपयोग 'encodeURIComponent()' यूआरएल के लिए। –

+0

jquery AJAX कॉल में मेरे पैरामीटर में गुजरने के बाद से मुझे यह नहीं करना चाहिए। इसके अलावा मैंने इसे आजमाया और यह और भी बदतर हो गया, मुझे लगता है कि यह डबल एन्कोडिंग की तरह करता है, तो – StevieB

+0

काफी हद तक यह मेरे स्थानीय सर्वर यानी "डी +% 26 + डी% 2 सी" जैसे पैरामीटर पर काम करता है लेकिन विकास सर्वर – StevieB

उत्तर

2

एजेक्स में अंतरिक्ष और भाषण चरित्र के साथ पास पैरामीटर के लिए, आपने भागने और अनदेस्क फ़ंक्शन का उपयोग किया है।

var test = 'Exemplae Actão ç @#$%$ '; 
var testEscape = escape(test); 
console.info(test , testEscape , unescape(testEscape)); 

यह आपको समस्या का समाधान

1

अपने मूल्यों सांकेतिक शब्दों में बदलना String.prototype.replace() उपयोग करने का प्रयास के साथ RegExp()/\s(&)\s/

var data = "123 & abc"; 
 
var res = data.replace(/\s(&)\s/, "$1"); 
 
console.log("data:", data,"res:", res)

संबंधित मुद्दे