为什么搜索功能无法在此页面上运行?

时间:2010-05-31 11:52:57

标签: asp.net javascript proxy firebug

我们为客户提供微网站内容。我们的内容被注入到由另一个开发人员提供的包装器中。

为了传递我们的内容,我们托管了包装器和内容。用户可以访问

http://fundcentre.newireland.ie/(尝试搜索'bloxham')

对于不属于我们的其他内容,其他开发人员会托管类似(虽然略有不同)的包装并提供内容。用户在此访问:

http://www.newireland.ie/(尝试搜索'bloxham')

包装器包含一个搜索框,它对我们不起作用,但它适用于其他开发人员。我看了一下使用FireBug的网络流量但看起来当我从我们正在托管的包装器进行搜索时,我收到了“407 Proxy Access Denied”错误。我的猜测是他们的代理有一个问题,即搜索是从他们代理范围之外托管的页面进行的。

还有人建议页面上有javascript错误阻止搜索执行但我看不到任何错误。此外,如果情况确实如此,我认为我不会得到代理错误。

我真的不太了解这个东西,所以有经验的人可以看看,也许可以为我解释一下这个问题吗?感谢。

2 个答案:

答案 0 :(得分:1)

问题似乎是搜索框及其旁边的按钮(放大镜)都导致整个页面表单在之后提交,他们尝试将页面URL设置为搜索URL。当您在搜索字段中键入并按“Enter”时,将提交包裹整个页面的外部表单。单击放大镜时,尝试加载搜索结果,但因为它是图像按钮,单击会导致提交外部表单。

我不确定如何最好地解决它,部分原因是因为我认为应该抛弃整个页面设计。但是如果你坚持使用它,可能可以通过放弃按钮上的内联Javascript(因为它无论如何都没有工作)来使它工作,然后用自己的包装搜索东西<form>指向搜索页面。在<form>中设置<form>是不好的方法,但在将整个页面放在<form>开始的设计中很难避免。

或者,您可以尝试在搜索输入上处理按键事件以检测“Enter”,并让该处理程序和按钮上的代码都返回“false”以停止外部表单提交。

编辑 - 至于为什么它可以在其他网站上运行,在我看来,外部表单确实是“搜索”功能,因为他们没有点击处理程序在搜索按钮上,所以它所做的就是提交外部表格。

再次编辑 - 此外,我从未见过“代理”问题。如果我首先修复按钮上的内联Javascript以使其以; return false结尾,则从您的页面搜索可以正常工作。这实际上可能就是你需要做的一切。

答案 1 :(得分:0)

标签的操作指向不同的脚本可能会出现问题。一个指向“Home.aspx”,另一个指向“/Default.aspx”。 这两个链接位于不同的子域中,因此您可能希望更改子域的操作,使其包含操作的完整位置(例如“http://www.newireland.ie/Default.aspx”)