6

一些用户在使用我的 Web 应用程序时反复遇到一个非常神秘的问题。

在使用它的过程中,他们会单击一个按钮或链接,将他们带到另一个页面,但是会出现“找不到页面”错误,因为 URL 类似于:

http://www.correctwebsitename.com/未定义

我认为这可能是我的应用程序中的一个javascript 错误:通过选择一个页面名称(可能带有一些参数)完成的重定向,其中一个值是错误的,导致页面名称 =“未定义”。但是我的应用程序中的任何地方都没有这样的代码,而且这发生在许多不同的页面上,似乎是随机的

似乎更频繁发生的一件事是,如果用户最初是通过单击 gmail 中电子邮件消息中的链接登录的。但一位将链接 URL 剪切并粘贴到浏览器窗口中的用户表示,这种情况仍然存在。谷歌搜索显示一些暗示,某种谷歌重定向或缓存正在幕后发生

有任何想法吗?

编辑:
我没有收到任何熟悉 gmail 链接等如何工作的人的回复,有人知道谷歌专家“闲逛”的 SO 标签是什么吗?

编辑2:
奖励有用信息和临时解决方法的最佳答案,但仍然对问题的真正解决方案感兴趣,因此不接受解决方法作为解决方案。

4

2 回答 2

1

我相信你对 gmail 对链接做一些事情是正确的。请参阅下面的 gmail 图片:

邮箱

非标准标题字段通常通过在字段名称前加上 X- 来标记

它可能表现得像......哦,好吧,谷歌,并检查一切。

为了阻止谷歌搜索跟踪我的点击,我必须创建一个用户脚本来重写他们的一个功能:

rwt = function(){};

也许你可以为 gmail 尝试类似的东西。


什么是rwt?

rwt()是来自 google 搜索的 javascript 函数,它重写链接以跟踪您访问过的站点。

例如,搜索“greasemonkey”会显示 Mozilla 插件页面作为第一个结果。点击它打开

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCUQFjAA&url=https%3A%2F%2Faddons.mozilla.org%2Fpt-BR%2Ffirefox%2Faddon%2Fgreasemonkey%2F&ei=iWNtUIXjIoyQ8wTxv4DQAQ&usg=AFQjCNEO9EJcHp9rAmKyD_XZF2Bt6hs_YQ&sig2=P19xVUsD-Q1G_9AiUBP3PQ

然后重定向到

https://addons.mozilla.org/pt-BR/firefox/addon/greasemonkey/

上图和rwt()案例只是为了向您展示 gmail 更改链接的可能性很大,因此这可能与您的问题有关。


由于在 gmail 方面您无能为力,也许您可​​以通过重定向http://www.correctwebsitename.com/undefinedhttp://www.correctwebsitename.com您希望用户看到的任何其他页面来在您的服务器上修复它。

因此,无论是来自 gmail 还是任何其他推荐人,每次客户登陆时都会http://www.correctwebsitename.com/undefined将他重定向到另一个页面。


所以也许我可以弄清楚如何将它们发送回它们来自的页面

ASP

if not request.UrlReferrer is nothing then
    response.redirect (request.UrlReferrer.tostring)
end if

JS(为此,您必须实际创建一个名为 的页面undefined

if (window.location.href.toLowerCase().indexOf('undefined') > -1) {
    // this works
    window.location.href = document.referrer;

    // this works too (uncomment to enable)
    // history.back();
}

请记住,如果用户直接输入网址或使用收藏夹中的链接,则不会没有推荐人

于 2012-10-04T02:13:07.087 回答
0

我建议您在应用程序中检查以下内容。

除了您拥有的代码之外,您的应用程序中是否有任何代码?

第三方应用程序可以注入代码,例如“AddThis”有时会向您的网址添加一个额外的#parameter,在您的情况下,很明显javascript正在尝试使用location.href作为“未定义”的东西很多js开发者都会遇到。

通过添加 # 将有助于进行跨站点通信,一些错误也可能在这里引起问题。

在您的代码中完整搜索“location.href”,看看您是否在任何地方使用过它。

有时浏览器上的第三方插件也可能导致此问题

希望这些可以帮助您缩小问题范围。

如果您无法在任何地方找到问题,我建议您覆盖网络服务器上的 404 功能并使用 Referrer 实施解决方案。

于 2012-10-08T08:41:13.247 回答