Вопрос

Настройка:
Рассматриваемая программа пытается отправить данные формы через вызов AJAX целевой процедуре, содержащейся в том же пакете, что и вызывающая сторона.Это сделано для сайта, который использует безопасное соединение (HTTPS).Здесь используется технология PLSQL и ДОДЗЁ Библиотека 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, чтобы посмотреть, чему еще я могу из него научиться.Обнаружил вкладку «Веб-формы», на которой отображаются значения в веб-форме.Разве ты не знаешь, что "xxx_DISPLAYED_"Поля выше были в нем.

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top