سؤال

الإعداد:
يحاول البرنامج المعني نشر بيانات النموذج عبر استدعاء AJAX إلى الإجراء المستهدف الموجود في نفس الحزمة مثل المتصل.ويتم ذلك لموقع يستخدم اتصالاً آمنًا (HTTPS).التكنولوجيا المستخدمة هنا هي بلسكل و ال دوجو مكتبة جافا سكريبت.أداة التطوير هي في الأساس محرر النصوص.

مقتطف الكود:

> 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;  
       }    

المشكلة:
عند استخدام IE6 (الذي تستخدمه قاعدة المستخدم بأكملها)، تكون الاستجابة المرسلة من الخادم خطأ 404.

الملاحظات:
البرنامج يعمل بشكل جيد في فايرفوكس.
لا يمكن أن يستهدف إجراء الاستدعاء أي إجراءات ضمن نفس الحزمة.
يمكن أن يستهدف إجراء الاتصال المواقع الخارجية (كل من http وhttps).
تعمل مكالمات AJAX الأخرى الموجودة في الحزمة والتي ليست منشورات لبيانات النموذج بشكل جيد.
لقد بحثت في إنترنت وقمت بالتشاور مع أعضاء الفريق ذوي المهارات العالية ولم تكتشف أي شيء يعالج المشكلة بشكل مُرض.
*حاول سؤال وجواب في منتديات دعم Dojo.

الأسئلة:
ما هي تقنيات استكشاف الأخطاء وإصلاحها التي توصي بها؟
ما أدوات استكشاف الأخطاء وإصلاحها التي توصي بها لتحليل HTTPS؟
أي فرضيات حول ما قد تكون عليه هذه القضية؟
هل هناك أي أفكار لحلول بديلة ليست اختراقات كاملة (سيئة)؟

إد.الحل
لوماكس، شكرا ل العابث نصيحة.ليس لديك أي فكرة عن مدى روعة الحصول على ذلك واستخدامه كأداة لتصحيح الأخطاء.بعد البدء، هذا ما وجدته وكيف أصلحته (على الأقل على المدى القصير):

> 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

بعد رؤية تلك الرسالة من الخادم، قمت بالتجول حول Fiddler أكثر قليلاً لمعرفة ما يمكنني تعلمه منها.وجدت أن هناك علامة تبويب WebForms تعرض القيم الموجودة في نموذج الويب.ألا تعلم ذلك "xxx_DISPLAYED_"الحقول أعلاه كانت موجودة فيه.

لا أفهم حقًا سبب وجود هذه الحقول، لأنني لم أقم بإنشائها بشكل صريح على الويب PLSQL شفرة.لكنني أفهم الآن أن الإجراء المستهدف يجب أن يتضمنها كمعلمات حتى تعمل بشكل صحيح.مرة أخرى، هذا فقط في حالة IE6 بالنسبة لي، كما فايرفوكس يعمل بشكل جيد.

حسنًا، هذه إجابة قصيرة المدى واختراق لإصلاحها.نأمل أن يؤدي المزيد من العمل في هذا المجال إلى فهم أفضل للأساسيات الجارية هنا.

هل كانت مفيدة؟

المحلول

سيكون منفذ الاتصال الأول هو إطلاق النار العابث وتحليل البيانات من وإلى المتصفح.

ألقِ نظرة على الرؤوس، وعنوان URL الذي يتم استدعاؤه بالفعل، وتمرير المعلمات (إن وجدت) إلى طريقة AJAX ومعرفة ما إذا كان كل شيء يبدو جيدًا قبل الوصول إلى الخادم.

إذا بدا كل شيء على ما يرام، فهل هناك أي طريقة يمكنك من خلالها التحقق من وصوله بالفعل إلى الخادم عبر التسجيل أو التتبع بطريقة AJAX؟

إد:شيء آخر سأحاوله هو تجهيز صفحة اختبار لاستدعاء طريقة AJAX على الخادم باستخدام مكالمة غير مستندة إلى ajax وتحليل حركة المرور في عازف الكمان ومقارنة الاثنين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top