2011-03-29 19 views
6

I कई कई जेएस फ़ंक्शंस हैं जो $ .ajax jquery विधि के साथ विभिन्न php फ़ाइलों को कॉल करते हैं ... कल सब कुछ ठीक था, लेकिन मेरे कोड को साफ करने के बाद, मुझे नहीं पता कि मैंने क्या किया है, लेकिन अब ajax प्रतिक्रिया "data" के बजाय "[space]data" की तरह है ..अजीब चीज, AJAX प्रतिक्रिया में व्हाइटस्पेस

मैं जे एस में एक ट्रिम समारोह इस्तेमाल कर सकते हैं, लेकिन मैं समस्या के स्रोत को ठीक करना चाहते हैं ...

मेरे सभी php फ़ाइलें पिछले लापता है ?> इससे बचने के लिए, और <?php से पहले मुझे यकीन है, बस चेक किया गया है, कोई जगह नहीं है ...

मैं इस त्रुटि को कैसे पेश किया? सर्वर है? ब्राउज़र?

मजाकिया बात यह है कि कल मैंने अपना कोड JSLINT के साथ साफ़ कर दिया ..! बुरा विचार ..

धन्यवाद

+0

सुनिश्चित नहीं है कि हमें किसी भी कोड के बिना यह जानने की उम्मीद है ... – Dutchie432

+0

प्रदर्शित करने के लिए कोई भी PHP कोड? – Neal

+0

एफएचएफ कोड प्रभावशाली नहीं है ... बस Francesco

उत्तर

18

जब मैं एक ही समस्या यह सिर्फ एक गाड़ी वापसी या समापन पीएचपी टैग के बाद अंतरिक्ष, दुर्घटना से लागू करने के लिए एक आश्चर्यजनक रूप से आसान बात थी।

सुनिश्चित करें कि आप अपनी स्क्रिप्ट की पहली पंक्ति की शुरुआत में PHP टैग खोलें, इसे अंत में बंद करें और बंद टैग के बाद सबकुछ हटाएं (अच्छे संपादक में स्थानांतरित होना आसान होना चाहिए)।

मुझे कोई कारण नहीं दिख रहा है कि क्यों आपका PHP टैग बंद नहीं करना वास्तव में परेशान नहीं होगा .. लेकिन यह सिर्फ मुझे है!

+0

हाँ मैंने सोचा कि ... वास्तव में मुझे सभी बच्चों और अभिभावकों की फाइलों को मुश्किल से जाना पड़ा और मुझे अंत में अतिरिक्त एफ ** स्थान मिला !!! धन्यवाद – Francesco

+1

PHP ईओएफ को एक समापन PHP टैग के समतुल्य समझा जाता है। इस प्रकार फ़ाइल के अंत में एक बंद PHP टैग अनावश्यक है। और, जैसा कि आपने पाया है, यह त्रुटि प्रवण है। AJAX अनुरोधों को तोड़ने के अलावा, यदि आप अपने डॉक्टरेट से पहले किसी भी व्हाइटस्पेस प्राप्त करते हैं तो आप IE के कुछ संस्करण quirksmode में भेज सकते हैं। मेरे दिन की नौकरी में हम इसे बंद करने वाले PHP टैग को छोड़ने के लिए एक खरगोश बनाते हैं, और मैं इसे अपने व्यक्तिगत काम में कभी भी उपयोग नहीं करता हूं। – JAAulde

+0

मैंने सभी शामिल फ़ाइलों की शुरुआत में यूटीएफ बीओएम भी रिक्त स्थान जोड़ रहे थे।मैंने बीओएम –

0

यदि सर्वर से आपकी प्रतिक्रिया में अतिरिक्त स्थान शामिल है, तो PHP कोड कारण है। यदि आपकी प्रतिक्रिया में अतिरिक्त स्थान शामिल नहीं है, तो समस्या जावास्क्रिप्ट में होनी चाहिए।

सर्वर से वास्तविक प्रतिक्रिया की जांच करने के लिए फिडलर का उपयोग यह देखने के लिए करें कि इसमें वास्तव में जगह है या नहीं। फिर आप निश्चित रूप से जान लेंगे कि समस्या PHP या जेएस के साथ है या नहीं। फिर आप प्रासंगिक कोड पोस्ट कर सकते हैं।

9

मुझे पता है कि मुझे यह थ्रेड देर हो चुकी है, मुझे पता चला क्योंकि मेरे पास एक ही समस्या थी। मैं यह पुष्टि करने में सक्षम था कि यद्यपि आप अपने कॉलबैक फ़ंक्शन में सभी रिक्तियां साफ़ कर सकते हैं, फिर भी आपके प्रतिक्रिया टेक्स्ट में इन व्हाइट-स्पेस/कैरिज रिटर्न प्राप्त करना संभव है (आप इसे "नेटवर्क" के तहत क्रोम डेवलपर टूल में भी देख सकते हैं टैब)।

इसलिए मैंने परीक्षण किया और पाया कि यदि आप अपने कॉलबैक फ़ंक्शन के शीर्ष पर ob_clean(); डालते हैं तो यह उन रिक्त स्थानों को साफ़ करता है। मुझे इस फ़ंक्शन के बारे में बहुत कुछ नहीं पता है कि यह कोडेक्स (http://codex.wordpress.org/AJAX_in_Plugins#Debugging) में उल्लेख किया गया था। उम्मीद है कि किसी भी अन्य समस्या की वजह से यहां कोई अन्य समस्या है जो

+1

इसके बाद से इस [सहायक स्पष्टीकरण] में आया (http://stackoverflow.com/a/4401992/1058371) – Xtremefaith

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