2012-05-21 38 views
0

我有一个启用ColdFusion的表单(用于验证)提交到一个单独的页面。当提交这个表单时,它会在动作页面上显示404,但是当我直接将动作url加载到地址栏时,它会显示出来(出现错误,但没关系)。这是我遇到的最奇怪的问题之一。404提交后提交;直接调用时发现

窗体页:http://www.jefferson.edu/population_health/_archive/contact_me.cfm

行动页:http://www.jefferson.edu/population_health/_archive/contact_action.cfm

即使我尝试通过URL传递表单变量它给了我一个404

+1

你以前曾经在该Web服务上遇到POST数据问题吗?也许他们不允许POST方法并且不返回正确的错误响应? – animuson

+0

尝试将mailaction.cfm重命名为其他内容并将其移至其他目录并查看会发生什么。当POST发生时,它可能是IIS设置别名的目录。 –

+0

@animuson,我没有。这是一个非常基本的,非定制的Web服务器。 –

回答

2

我的直觉是,当机器提交数据并将其绑定到另一个网络服务器时,该机器上还有另一项服务试图接管请求......当然,它无法找到正确的页面在它自己的webroot上。

如果单击http://www.jefferson.edu/population_health/_archive/contact_me.cfm,它加载罚款,并返回200头与IIS的服务器,但如果你点击http://www.jefferson.edu/population_health/_archive/contact_me2.cfm它抛出一个404,符合市场预期,但它的正确使用自定义404处理,头响应仍IIS 。但是如果你点击http://www.jefferson.edu/population_health/_archive/contact_me.cfm?foo=bar,它会返回一个ApacheSling默认的404和标题信息,说明服务器是“Day-Servlet-Engine/4.1.12”。

+0

哇,很好。我们在同一个盒子上运行Adobe CQ5,Apache Sling应该忽略正在传递的url/form变量,但当然不是。 *叹*因此,我将这些文件完全移出population_health /文件夹和其他地方。 –

+0

不错的赶sharondio :) –

+0

当你可以击中OP的实际服务器时,更容易调试这些东西。乐意效劳! :-) – Sharondio

0

你的页面发布到网页contact_action.cfm ...在你的问题中,你指出正确的页面应该是“mailaction.cfm”。

如果操作页面实际上是mailaction.cfm,那么您只需要更改cfform的操作属性。

+0

还要记住,在某些Web服务器配置上,它可能区分大小写。 –

+0

我将邮件操作源更改为contact_action.cfm,并且获得相同的404。 –