2009-06-22 16 views
6

मैं AJAX अनुरोध करने के लिए jQuery का उपयोग कर रहा हूं। डेटा अच्छी तरह से PHP हो रहा है, लेकिन प्रतिक्रिया जावास्क्रिप्ट को ठीक से वापस नहीं मिल रही है। किसी भी तरह प्रतिक्रिया से पहले एक जगह है। मुझे यह पता है क्योंकि फायरबग ऐसा कहता है और मेरा कोड काम नहीं करता है क्योंकि अंतरिक्ष वहां है। जब मैं एक जगह होने की उम्मीद करता हूं तो यह ठीक काम करता है। अंतरिक्ष को जोड़ने में क्या कोई विचार हो सकता है? अपने PHP फ़ाइल में <?php ?> टैग के बाहर नकली खाली स्थान के पात्रों के लिएअजाक्स प्रतिक्रिया से पहले अंतरिक्ष (jQuery, PHP)

function my_ajax (aurl, adata, aretfunc) { 
$.ajax({ 
    type: "POST", 
    url: aurl, 
    data: adata, 
    success: function(msg) { 
    eval(aretfunc+'(msg);'); 
    } 
}); 
} 

उत्तर

18

देखो:

यहाँ मेरी ajax कार्य है। PHP स्क्रिप्ट निष्पादित होने पर ऐसी कोई भी व्हाइटस्पेस आउटपुट प्राप्त करेगी। यदि आपकी PHP फ़ाइल में अन्य PHP फ़ाइलें शामिल हैं, तो वही चीज़ उन फ़ाइलों पर भी लागू होती है।

+2

+1 यह सबसे खतरनाक कीड़े में से एक हो सकता है। किसी तीसरे पक्ष के विक्रेता के साथ कुछ PHP कोड पर काम करते समय मुझे इसका सामना करना पड़ा। परीक्षण के बिना, एक पुनरावृत्ति पर, उन्होंने अपने स्वयं के PHP ब्लॉक के भीतर प्रत्येक फ़ाइल के शीर्ष पर टिप्पणियों का एक ब्लॉक जोड़ने का निर्णय लिया, इसके बाद वास्तविक PHP कोड ब्लॉक से पहले एक खाली रेखा। वैसे कि रिक्त रेखा को ब्राउजर को भेजी गई सामग्री माना जाता था, इसलिए किसी भी/सभी कोड को बाद में http हेडर सेट करने के लिए आवश्यक (उदाहरण के लिए) खराब तरीके से विफल रहा। –

+0

हाय ... अब मेरे कोड पर भी हो रहा है .. मैंने कोड की पठनीयता को प्रभावित किए बिना किसी भी अनावश्यक स्थान को हटाने का प्रयास किया है ... फिर भी मुझे रिक्त स्थान मिलते हैं ... वैसे भी .. मैंने रिक्त स्थान का उपयोग किया है मेरे पहले के कोड में काफी उदारता से लेकिन केवल अब मैं यह समस्या देखता हूं .... – SpikETidE

5

सहमत हैं, <?php ?> के बाहर नकली सफेद जगह के चरित्र की तलाश करें। एक सुझाव, और जो पूरी तरह से वैध है वह पीछे ?> पीछे हटाना है, क्योंकि वे अनावश्यक हैं। In fact, it's a coding standard for Drupal.

+0

इस तरह की समस्या की जांच करते समय मुझे मिली एक सुराग ब्राउज़र में एक दृश्य स्रोत कर रहा था और डॉक्टरेट घोषणा से पहले एक खाली रेखा देख रहा था (पहली पंक्ति में वेब पेज)। –

+0

यह। मैंने अभी अपने कोडइग्निटर मॉडल php फ़ाइल के अंत से?> को हटा दिया है और यह समस्या ठीक कर दी है, और व्हाइटस्पेस आउटपुट नहीं! – skiindude22

4

कुछ मामलों में, मैंने पाया है कि कुछ भी करने से पहले $ .trim() के माध्यम से प्रतिक्रिया चलाना काफी अच्छी तरह से काम कर सकता है।

बेशक, ऊपर दिए गए समाधान अभी भी बहुत लागू हैं, लेकिन यदि आप ऐसी स्थिति में हैं जहां आप इसे बदल नहीं सकते हैं, तो मुझे लगा कि यह वहां फेंकने लायक होगा।

+0

यह अच्छा है। बहुत ही उत्पादक विचार, यदि प्रारंभिक कोड को डीबग करने में लंबा समय लगेगा। – Haluk

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