Ajax.Request पोस्ट शरीर नहीं भेज

वोट
1

मैं दुर्भाग्य से पोस्ट के शरीर भेजे जाने के लिए कभी नहीं लगता है, एक पोस्ट अनुरोध बनाने के लिए कोशिश कर रहा हूँ।

नीचे दिए गए कोड है कि मैं का उपयोग कर रहा है। कोड कोई उपयोगकर्ता किसी लिंक, नहीं एक फार्म पर क्लिक करता है जब शुरू हो जाती है बटन सबमिट करें। यह त्रुटि के बिना चलाता है सर्वलेट कि कहा जाता है की जा रही है invokes लेकिन, जैसा कि मैंने पहले उल्लेख किया है, पोस्ट के शरीर कभी नहीं भेजा जा रहा है।

मैं पुष्टि कर सकते हैं कि अनुरोध शरीर के बाद से मैं सर्वलेट के लिए उपयोग बुलाया जा रहा है कभी नहीं भेजा जाता है।

मैं का उपयोग कर पैरामीटर में की की जगह की कोशिश की है requestBody। मैं भी एक पैरामीटर स्ट्रिंग का उपयोग की कोशिश की है (एक्स = एक? Y = ख)। मैं भी मान्य कर दिया है कि ckULK में वैध मान है।

कोई विचार?

new Ajax.Request(sURL,
{
    method: 'POST'
    , contentType: text/x-json
    , requestBody: {ulk:ckULK}
    , onFailure:
        function(transport)
        {
            vJSONResp = transport.responseText;
            var JSON = eval( ( + vJSONResp + ) );
            updateStatus(JSON.code + :  + JSON.message);
        } // End onFailure
    , onSuccess: 
        function(transport) 
        {
            if (200 == transport.status)
            {
                vJSONResp = transport.responseText;
            }
            else
            {
                log.value += \n + transport.status;
            }
         } // End onSuccess
}); // End Ajax.request
19/10/2008 को 06:50
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
5

इन स्थितियों में, जहां Firebug और Firefox वास्तव में सहायक होते हैं की तरह कर रहे हैं। मैं तुम्हें Firebug स्थापित अगर आप इसे नहीं है और अनुरोध किया जाता है कि भेजा जा रहा है की जाँच सुझाव देते हैं।

आप यह भी निश्चित रूप से करने के लिए छड़ी की जरूरत parametersके बजाय requestBody

इस:

new Ajax.Request(sURL,
{
    method: 'POST',
    parameters: 'hello=world&test=yes',
    onFailure: function(transport) {
        vJSONResp = transport.responseText;
        var JSON = eval( "(" + vJSONResp + ")" );
        updateStatus(JSON.code + ": " + JSON.message);
    },
    onSuccess: function(transport) {
        if (200 == transport.status) {
            vJSONResp = transport.responseText;
        } else {
            log.value += "\n" + transport.status;
        }
     }
});

निश्चित रूप से काम करना चाहिए।

19/10/2008 को 06:53
का स्रोत उपयोगकर्ता

वोट
1

सीधे शब्दों में के रूप में डेटा पास parametersअजाक्स अनुरोध निर्माता रहे हैं:

new Ajax.Request(url, {
  method: 'POST', 
  parameters: {
    hello: "world", test: "test"
  },
  onSuccess: function(transport){
    var data = transport.responseText.evalJSON();
  }
});
20/10/2008 को 08:42
का स्रोत उपयोगकर्ता

वोट
0

जब मैं इस समस्या को मारा समाधान निकालने के लिए था contentTypeसे Ajax.Requestविकल्प।

में जवाब द्वारा पाओलो Bergantino contentType में निर्धारित नहीं है Ajax.Requestविकल्प।

अज्ञात कारणों के पैरामीटर में परिभाषित से parametersनहीं भेजा गया था (एफएफ उन्हें दिखाई नहीं दिया और अपने सर्वर खाली पोस्ट शरीर देखा था)।

मेरे एक सहकर्मी ने उपयोग करने के लिए सुझाव दिया postBodyके बजाय parametersलेकिन मैं यह कोशिश नहीं की।

12/07/2012 को 09:21
का स्रोत उपयोगकर्ता

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