डीबगिंग: आईई 6 + एसएसएल + AJAX + पोस्ट फॉर्म = 404 त्रुटि

The Setting:
The program in question tries to post form data via an AJAX call to a target procedure contained in the same package as the caller. This is done for a site that uses a secure connection (HTTPS). The technology used here is PLSQL and the DOJO JavaScript library. The development tool is basically a text editor.

Code Snippet:

> function testPost() {  
>>    dojo.xhrPost( {  
             url: ''dr_tm_w_0120.test_post'',  
             form: ''orgForm'',  
             load: testPostXHRCallback,  
             error: testPostXHRError  
            });  
      }  

> function testPostXHRCallback(data,ioArgs) {  
>>          alert(''post callback'');  
          try{  
          dojo.byId("messageDiv").innerHTML = data;  
          }  
          catch(ex){  
                if(ex.name == "TypeError")  
                {  
                  alert("A type error occurred.");  
                }  
          }   
          return data;  
       }         
> 
function testPostXHRError(data, ioArgs) {    
>>          alert(data);  
          alert(''Error when retrieving data from the server!'');  
          return data;  
       }    

The Problem:
When using IE6 (which the entire user-base uses), the response sent back from the server is a 404 error.

Observations:
The program works fine in Firefox.
The calling procedure cannot target any procedures within the same package.
The calling procedure can target outside sites (both http, https).
The other AJAX calls in the package that are not posts of form data work fine.
I've searched the internets and consulted with senior-skilled team members and haven't discovered anything that satisfactorily addresses the issue.
*Tried Q&A over at Dojo support forums.

The Questions:
What troubleshooting techniques do you recommend?
What troubleshooting tools do you recommend for HTTPS analyzing?
Any hypotheses on what the issue might be?
Any ideas for workarounds that aren't total (bad) hacks?

Ed. The Solution
lomaxx, thx for the fiddler tip. you have no idea how awesome it was to get that and use it as a debugging tool. after starting it up this is what i found and how i fixed it (at least in the short term):

> ef Fri, 8 Aug 2008 14:01:26 GMT dr_tm_w_0120.test_post: SIGNATURE (parameter names) MISMATCH VARIABLES IN FORM NOT IN PROCEDURE: SO1_DISPLAYED_,PO1_DISPLAYED_,RWA2_DISPLAYED_,DD1_DISPLAYED_ NON-DEFAULT VARIABLES IN PROCEDURE NOT IN FORM: 0

सर्वर से उस संदेश को देखने के बाद, मैंने फिडलर के चारों ओर एक और अधिक देखा कि मैं इससे और क्या सीख सकता हूं। पाया गया कि एक वेबफॉर्म टैब है जो वेब फ़ॉर्म में मान दिखाता है। क्या आप इसे नहीं जानते, " xxx_DISPLAYED _ " उपरोक्त फ़ील्ड इसमें थे।

मैं वास्तव में अभी तक समझ में नहीं आता कि ये फ़ील्ड क्यों मौजूद हैं, क्योंकि मैंने उन्हें वेब PLSQL कोड में स्पष्ट रूप से नहीं बनाया है। लेकिन अब मैं समझता हूं कि लक्ष्य प्रक्रिया को उन्हें सही तरीके से काम करने के लिए पैरामीटर के रूप में शामिल करना होगा। फिर, यह केवल मेरे लिए IE6 के मामले में है, क्योंकि फ़ायरफ़ॉक्स ठीक काम करता है।

खैर, कि अल्पकालिक उत्तर और इसे ठीक करने के लिए हैक। उम्मीद है कि इस क्षेत्र में थोड़ा और काम यहां आने वाले मूलभूत सिद्धांतों की बेहतर समझ का कारण बन जाएगा।

0
ro fr bn

1 उत्तर

कॉल का पहला बंदरगाह फिडलर को आग लगाना होगा और ब्राउज़र से आने वाले डेटा का विश्लेषण करना होगा।

हेडर पर एक नज़र डालें, यूआरएल वास्तव में बुलाया जा रहा है और पैरा (यदि कोई है) AJAX विधि में पारित किया जा रहा है और देखें कि यह सर्वर पर जाने से पहले अच्छा दिखता है या नहीं।

यदि यह सब ठीक दिखता है, तो क्या कोई तरीका है कि आप यह सत्यापित कर सकते हैं कि यह वास्तव में लॉगिंग के माध्यम से सर्वर को मार रहा है, या AJAX विधि में ट्रेसिंग कर रहा है?

एड: एक और चीज जो मैं कोशिश करूंगा, एक गैर-AJAX आधारित कॉल का उपयोग करके सर्वर पर AJAX विधि को कॉल करने और फिडलर में यातायात का विश्लेषण करने और दोनों की तुलना करने के लिए एक परीक्षण पृष्ठ तैयार कर रहा है।

0
जोड़ा
"फिडलर HTTP के लिए है।" दिलचस्प ... सामने वाले पृष्ठ पर यह कहता है: "फिडलर 2 ने फिडलर 1.x को बदल दिया है। फिडलर 2 एचटीटीपीएस डीबगिंग का समर्थन करता है यातायात, एक समृद्ध विस्तारशीलता मॉडल, और साथ-साथ स्थापित करके अगर वांछित है तो फिडलर 1.x। ध्यान दें कि फिडलर 2 को .NET Framework के संस्करण 2.0 की आवश्यकता है। " मुझे अभी भी लगता है कि यह फायरिंग के लायक है :)
जोड़ा लेखक lomaxx, स्रोत