调试:IE6 + SSL + AJAX +发布表单= 404错误

5 debugging ajax ssl internet-explorer internet-explorer-6

设置:
有问题的程序尝试通过AJAX调用将表单数据发布到与调用者相同的程序包中包含的目标过程。这是对使用安全连接(HTTPS)的站点完成的。这里使用的技术是PLSQLDOJO 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;  
       }    
Run Code Online (Sandbox Code Playgroud)

问题:
使用IE6(整个用户库都使用)时,从服务器发送回的响应是404错误。

观察结果:
该程序在Firefox中运行良好。
调用过程不能以同一包中的任何过程为目标。
调用过程可以针对外部站点(http,https)。
包中其他不是表单数据过帐的AJAX调用都可以正常工作。
我搜索了互联网,并咨询了高技能的团队成员,但没有发现任何令人满意的解决方案。
* 在Dojo支持论坛上进行了问答

问题:
您建议使用哪些故障排除技术?
您推荐使用哪些故障排除工具进行HTTPS分析?
关于这个问题可能有什么假设?
有什么解决方法不是完全(坏)黑客的想法吗?

埃德 Solution
lomaxx,提琴手技巧的thx 。您不知道将其用作调试工具有多棒。启动之后,这就是我发现的内容以及如何修复它(至少在短期内):

> 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
Run Code Online (Sandbox Code Playgroud)

看到来自服务器的消息后,我又踢了Fiddler几步,看看还能从中学到什么。发现有一个WebForms选项卡,用于显示Web表单中的值。您不知道吗,xxx_DISPLAYED_上面的“ ”字段就在其中。

我还不太了解为什么这些字段存在,因为我没有在Web PLSQL代码中显式创建它们。但是,我现在确实知道目标过程必须将它们作为参数包含在内才能正常工作。同样,这仅对IE6我而言,因为Firefox运行良好。

好吧,这是短期的答案,并且可以解决它。希望在此领域中进行更多的工作将有助于更好地理解此处的基础知识。

lom*_*axx 4

第一个调用端口是启动Fiddler并分析进出浏览器的数据。

查看标头、实际调用的 url 以及传递给 AJAX 方法的参数(如果有),并在到达服务器之前查看一切是否正常。

如果一切看起来都正常,有什么方法可以验证它是否确实通过日志记录或 AJAX 方法中的跟踪来命中服务器?

ed:我会尝试的另一件事是安装一个测试页面,使用基于非ajax的调用来调用服务器上的AJAX方法,并分析fiddler中的流量并比较两者。