调试:IE6 + SSL + AJAX + post表单 = 404错误
-
08-06-2019 - |
题
那个设定:
相关程序尝试通过 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,看看我还能从中学到什么。发现有一个 WebForms 选项卡显示 Web 表单中的值。难道你不知道吗,“xxx_DISPLAYED_
" 上面的字段都在其中。
我还不太明白为什么这些字段存在,因为我没有在网络中明确创建它们 PLSQL
代码。但我现在确实明白目标程序必须将它们作为参数包含在内才能正常工作。再次强调,这仅适用于以下情况 IE6
对我来说,Firefox 运行得很好。
好吧,这是短期答案和修复它的方法。希望在这一领域做更多的工作能够更好地理解这里的基本原理。
解决方案
第一个停靠点是启动 提琴手 并分析传入和传出浏览器的数据。
查看标头、实际调用的 url 以及传递给 AJAX 方法的参数(如果有),并在到达服务器之前查看一切是否正常。
如果一切看起来都正常,有什么方法可以验证它是否确实通过日志记录或 AJAX 方法中的跟踪来命中服务器?
编者:我会尝试的另一件事是安装一个测试页面,使用基于非 ajax 的调用来调用服务器上的 AJAX 方法,并分析 fiddler 中的流量并比较两者。