Отладка: IE6 + SSL + AJAX + форма сообщения = ошибка 404

Настройка:
рассматриваемая программа пытается отправить данные формы через вызов 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 в пакете, которые не являются публикациями данных формы, работают нормально.
Я провел поиск в интернете и проконсультировался со старшими опытными членами команды и не обнаружил все, что удовлетворительно решает проблему.
*Пробовал Вопросы и ответы на форумах поддержки Dojo.

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

Ред. Решение
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

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

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

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


person Community    schedule 08.08.2008    source источник


Ответы (1)


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

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

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

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

person lomaxx    schedule 08.08.2008
comment
Lomaxx: *Fiddler для HTTP. * Заголовки, URL, параметры — все в порядке. * Необходимо связаться с нашими корпоративными администраторами и узнать, достаточно ли хорошо они себя чувствуют, чтобы посмотреть журналы. - person ; 08.08.2008
comment
Fiddler для HTTP. Интересно... на первой странице написано: Fiddler 2 заменил Fiddler 1.x. Fiddler 2 поддерживает отладку трафика HTTPS, более богатую модель расширяемости и при желании может быть установлен параллельно с Fiddler 1.x. Обратите внимание, что для Fiddler 2 требуется версия 2.0 .NET Framework. Я все же считаю, что его стоит зажечь :) - person lomaxx; 08.08.2008