2012-03-26 20 views
9

इस त्रुटि को ~ 9 000 प्रतीकों के आकार में बड़ी संख्या में $_GET क्वेरी पर मिला (वे ~ 10 चर में विभाजित हैं)।अनुरोध-यूआरआई बहुत बड़ा

Request-URI Too Large 

The requested URL's length exceeds the capacity limit for this server. 

इस समस्या के लिए कोई समाधान क्या है?

+2

यदि आप ऐसे URL इस लंबी है क्यों हैं? –

+5

अपने यूआरआई आकार को कम करने का प्रयास करें। मैंने 200 अक्षर कभी पार नहीं किया है, और यह खुद पर बड़ा तरीका था। आपको 9 000 से अधिक की आवश्यकता नहीं है !!!! ** अक्षर .... –

+2

"इस समस्या के लिए एक समाधान क्या है?" यूआरएल –

उत्तर

7

यदि आप इन सभी जानकारी को बिना सर्वर सर्वर कॉन्फ़िगरेशन के पास प्राप्त करना चाहते हैं तो कोई कामकाज नहीं है।

अन्य समाधान:

  • उपयोग एक फार्म के साथ पोस्ट (या एक गुप्त फ़ॉर्म और अपने लिंक है कि यह प्रस्तुत पर ऑनक्लिक ईवेंट जोड़ने)
  • उपयोग सत्र। जब सर्वर लिंक उत्पन्न करता है, तो उसे एक अद्वितीय आईडी (या आरआईडी, यह पूर्ण यूआरआई का एमडी 5 हो सकता है) के साथ $ _SESSION में स्टोर करें और इसे जीईटी के माध्यम से पास करें।
  • डाटाबेस या (सत्र की इसी प्रक्रिया के साथ) फ़ाइल भंडारण
+0

साथ ही देखें: [PHP में एक लंबी क्वेरी स्ट्रिंग को संपीड़ित/डिक्रॉप कैसे करें?] (Http://stackoverflow.com/questions/2996049/how-to-compress-decompress-a-long-query-string-in- php) – hakre

+0

मुझे लगता है कि इस तरह आप भविष्य में समस्या को हल करते हैं, जब यूआरएल संपीड़न के साथ भी बहुत बड़ा होगा। यदि आपको प्राप्त करने के माध्यम से बहुत अधिक जानकारी पास करने की आवश्यकता है तो तर्क को बदलना बेहतर होगा। (मेरे 2 सेंट) –

+0

यह केवल एक संबंधित प्रश्न है, यदि आप वहां स्वीकृत उत्तर पढ़ते हैं, तो आप यह भी देख सकते हैं कि यह भविष्य में * इतना * नहीं है बल्कि पहले से ही अतीत में है। – hakre

0

अच्छी तरह से एक यूआरआई में कई चीजों के आधार पर एक चरित्र सीमा होती है। आपको कम से

एक वैकल्पिक हल के लिए इसे बाहर की जाँच कर सकते पोस्ट का उपयोग करने के बजाय प्राप्त करता है, तो आप सर्वर भी विकासशील एक कर रहे हैं।

1

यह मेरे लिए काम किया है (यह formData समर्थन की जरूरत है) का प्रयोग करें:

<script> 
    //Load form 
    var formData = new FormData(); 
    formData.append("param_name1", "param_content1"); 
    formData.append("param_name2", "param_content2"); 
    formData.append("param_nameN", "param_contentN"); 

    //Send form via AJAX 
    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", YOUR_URL); 
    xhr.send(formData); 
</script>