Ajax अनुरोध पैरामीटर, मैं गलत क्या कर रहा हूँ?

वोट
1

मैं निम्न विधि में प्रोटोटाइप का उपयोग कर एक Ajax अनुरोध तैयार कर रहा हूँ:

function updateServerStep(stepNumber){
    alert(updating server step to  + stepNumber);
    var params = {stepNumber:stepNumber};
    alert(params.stepNumber);
    var request = new Ajax.Request('UpdateStep', {
          method:'Post',
          parameters:params,
          onSuccess: function(transport){
            alert(Step changed to  + stepNumber);
          },
          onFailure: function(transport){
            alert(Failed!);
          }
    });
}//updateServerStep

और मैं एक सर्वलेट जो पैरामीटर मैं ajax विधि में डाल यही निकलने की कोशिश करता है, लेकिन अनुरोध वस्तु में कोई पैरामीटर नहीं मिल रहा है। और मैं निर्धारित किया है यह शून्य होने के रूप में सूचीबद्ध है अगर मैं विशेषता प्राप्त करने की कोशिश।

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   HttpSession session = request.getSession(true);
   Integer pageNumber = (Integer)request.getAttribute(stepNumber);

   if (pageNumber != null){
        System.out.println(page number was + pageNumber.intValue());
        session.setAttribute(secPayStepNum, pageNumber);
    } else {
        System.out.println(page number was null);
        session.setAttribute(secPayStepNum, new Integer(0));
    }   
}

मैं Ajax अनुरोध ठीक से instantiating नहीं कर रहा हूँ या मैं मानकों को प्राप्त करने में एक गलती कर रहा हूं?

संपादित करें

मैं नाम के बारे में कोई भ्रम की स्थिति स्पष्ट करने के लिए जावास्क्रिप्ट को बदल दिया इस प्रकार है:

function updateServerStep(stepNumber){
    alert(updating server step to  + stepNumber);
    var params = {step:stepNumber};
    alert(params[step]);
    var request = new Ajax.Request('UpdateStep', {
          method:'Post',
          parameters: {'step':1},
          onSuccess: function(transport){
            alert(Step changed to  + stepNumber);
          },
          onFailure: function(transport){
            alert(Failed!);
          }
    });
}//updateServerStep

जावा ओर अभी तक किसी भी पैरामीटर नहीं मिल रहा है, मैं) एक पाश कि request.getAttributeNames से सभी मापदंडों बाहर प्रिंट (जोड़ दिया है; निम्नलिखित नुसार:

Enumeration names = request.getAttributeNames();

            System.out.println(Enumerating Attributes:);
            while( names.hasMoreElements()){
                System.out.println([ELEMENT] + names.nextElement().toString());


            }

और यह पाश से पहले लाइन बाहर प्रिंट से अलग कुछ नहीं करता है।

मैं भी गया है पैरामीटर में एक बड़ा सरणी और यह does not काम डालने की कोशिश की या तो, पाश अभी भी पुनरावृति नहीं है।

मैं डिबग मोड में जावा अंत दौड़े हैं और वहाँ कोई गुण भेजा जा रहा है। कम से कम नहीं जहाँ तक जावा देख सकते हैं।

मैं भी मापदंडों के paramaters बदलते कोशिश की है: कदम = 1 & कचरा: 'हैलो दुनिया' और foo = 'बार' 'क्योंकि प्रोटोटाइप डॉक्स का कहना है कि आप ऐसा कर सकते कोई गुण सर्वर साइड। मैं पाने के लिए मोड बदल गया है और यूआरएल के लिए इसे संलग्न और कोई गुण हैं है ...

04/06/2009 को 15:16
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

संक्षेप में प्रोटोटाइप प्रलेखन की जाँच के बाद, आपके अनुरोध लग रहा है मान्य।

मैं सीधे AJAX अनुरोध की सामग्री का निरीक्षण सलाह देते हैं। उपयोग Firebug या की तरह एक बाहरी HTTP स्निफर चार्ल्स प्रॉक्सी सत्यापित करने के लिए पोस्ट अनुरोध अपने डेटा है।

संपादित करें

मैं पूरी तरह से इसके चूक - आप निश्चित रूप से वस्तु गलत तय कर रहे हैं। आप ठीक से परिसीमन के बिना एक वस्तु संपत्ति के रूप में एक मौजूदा प्रतीक का पुन: उपयोग नहीं कर सकते।

var params = {"stepNumber":stepNumber};

यदि आप ऐसा नहीं करते हैं (के STEPNUMBER == 4 मान लें) तो अपने परम वस्तु इस तरह दिखता है

{"4":4}
04/06/2009 को 15:30
का स्रोत उपयोगकर्ता

वोट
2

getParameterNames का उपयोग करें () नहीं getAttributeNames ()।

पढ़ें: http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletRequest.html

और उन दोनों के बीच अंतर के लिए इंटरफ़ेस समारोह विवरण को देखो।

04/06/2009 को 16:13
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more