Отладка: IE6 + SSL + AJAX + почтовая форма = ошибка 404 - PullRequest
4 голосов
/ 08 августа 2008

Настройка:
Рассматриваемая программа пытается отправить данные формы посредством вызова AJAX целевой процедуре, содержащейся в том же пакете, что и вызывающая сторона. Это сделано для сайта, который использует безопасное соединение (HTTPS). Используемая здесь технология - PLSQL и DOJO библиотека JavaScript. Инструментом разработки является , в основном текстовый редактор .

Фрагмент кода:

> 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.

Замечания:
Программа отлично работает в Firefox.
Вызывающая процедура не может предназначаться для каких-либо процедур в том же пакете. Процедура вызова может быть нацелена на внешние сайты (оба http, https).
Другие вызовы AJAX в пакете, которые не являются сообщениями данных формы, работают нормально.
Я искал в интернете и проконсультировался с высококвалифицированными членами команды и не обнаружил ничего, что удовлетворительно решает проблему.
* Попробовал Q & A на форумах поддержки Dojo.

Вопросы:
Какие методы устранения неполадок вы рекомендуете?
Какие инструменты устранения неполадок вы рекомендуете для анализа HTTPS?
Любые гипотезы о том, что проблема может быть?
Какие-нибудь идеи для обходных путей, которые не являются полными (плохими) взломами?

Ed. Решение
lomaxx, спасибо за совет скрипача . Вы не представляете, как это круто - получить это и использовать в качестве инструмента отладки. после его запуска вот что я нашел и как я это исправил (по крайней мере, в краткосрочной перспективе):

> 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

Увидев это сообщение с сервера, я еще немного обошел Фиддлера, чтобы посмотреть, что еще можно из него извлечь. Обнаружено, что есть вкладка WebForms, которая показывает значения в веб-форме. Разве вы не знаете, поля "xxx_DISPLAYED_" выше были в нем.

Я пока не совсем понимаю, почему существуют эти поля, потому что я не создал их явно в веб-коде PLSQL. Но теперь я понимаю, что целевая процедура должна включать их в качестве параметров для правильной работы. Опять же, это только для меня IE6, так как Firefox работал нормально.

Ну, вот краткий ответ и взломать, чтобы это исправить. Надеемся, что немного больше работы в этой области приведет к лучшему пониманию основ, происходящих здесь.

1 Ответ

4 голосов
/ 08 августа 2008

Первым портом захода будет запускать Fiddler и анализировать данные, поступающие в и из браузера.

Посмотрите на заголовки, URL, который фактически вызывается, и параметры (если они есть), передаваемые методу AJAX, и посмотрите, хорошо ли все это выглядит перед тем, как попасть на сервер.

Если все выглядит нормально, есть ли способ проверить, действительно ли он попадает на сервер с помощью регистрации или отслеживания в методе AJAX?

ed: еще одна вещь, которую я бы попробовал, это настроить тестовую страницу для вызова метода AJAX на сервере с использованием вызова, не основанного на ajax, и проанализировать трафик в fiddler и сравнить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...