【发布时间】:2010-09-05 13:24:25
【问题描述】:
环境:
有问题的程序尝试通过 AJAX 调用将表单数据发布到与调用者相同的包中包含的目标过程。这是为使用安全连接 (HTTPS) 的站点完成的。这里使用的技术是PLSQL 和DOJO JavaScript 库。开发工具是basically a text editor。
代码片段:
> 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 支持论坛上尝试过 Q&A。
问题:
您推荐了哪些故障排除技术?
对于 HTTPS 分析,您推荐哪些故障排除工具?
关于问题可能是什么的任何假设?
对于不是完全(坏)黑客的解决方法有什么想法吗?
埃德。解决方案
lomaxx,谢谢fiddler 提示。您不知道获得它并将其用作调试工具有多棒。启动后,这是我发现的以及我如何修复它(至少在短期内):
> 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 运行良好。
嗯,短期的答案和破解来解决它。希望在这个领域做更多的工作能够更好地理解这里的基本原理。
【问题讨论】:
标签: ajax debugging internet-explorer ssl internet-explorer-6