6

一部のユーザーは、私の Web アプリケーションを使用しているときに、非常に不可解な問題に繰り返し遭遇します。

使用中に別のページに移動するボタンまたはリンクをクリックしますが、URL が次のようなものであるため、「ページが見つかりません」というエラーが発生します。

http://www.correctwebsitename.com/ undefined

私のアプリのJavaScript のバグかもしれないと思いました: 値の 1 つが間違っているページ名 (おそらくいくつかのパラメーターを使用) を選択することによってリダイレクトが行われ、ページ名 = "未定義" になります。しかし、私のアプリにはどこにもそのようなコードはなく、これは一見ランダムに多くの異なるページで発生します。

より頻繁に発生するように思われることの 1 つは、ユーザーが最初に gmail の電子メール メッセージのリンクをクリックしてログインした場合です。しかし、リンク URL をカット アンド ペーストしてブラウザ ウィンドウに貼り付けたユーザーは、まだ発生したと述べています。グーグルで調べてみると、何らかの Google リダイレクトまたはキャッシュが舞台裏で行われていることを示すいくつかのヒントが明らかになります。

何か案は?

編集:
Gmailリンクなどの仕組みに詳しい人からの回答がありません.Googleの専門家が「ぶらぶらしている」SOタグを知っている人はいますか?

編集 2:
有用な情報と一時的な回避策のアイデアに対してトップの回答に報奨金を授与しますが、問題の実際の解決策にはまだ関心があるため、解決策として回避策を受け入れません。

4

2 に答える 2

1

gmailがリンクを使って何かをしていることについて、あなたは正しいと思います。以下の gmail 画像を参照してください。

Gmail

非標準ヘッダー フィールドは、慣習的にフィールド名の前に X- を付けることでマークされます。

それはおそらく...まあ、Googleのように振る舞い、すべてを調べています。

Google検索がクリックを追跡しないようにするには、ユーザースクリプトを作成して関数の1つを書き直す必要がありました。

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 がリンクを変更している可能性が高いことを示しているため、これが問題に関連している可能性があります。


http://www.correctwebsitename.com/undefinedgmail側でできることは何もないので、リダイレクトするhttp://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();
}

ユーザーが URL を直接入力したり、お気に入りからのリンクを使用した場合、リファラーは存在しないことに注意してください。

于 2012-10-04T02:13:07.087 に答える
0

お申し込みにあたって、以下の点をご確認いただけますと幸いです。

あなたが所有しているものとは別に、アプリケーションにコードはありますか?

たとえば、「AddThis」のように、サードパーティのアプリケーションによってコードが挿入される可能性があります。たとえば、「AddThis」が余分な #parameter を URL に追加することがあります。多くの js 開発者が遭遇します。

# を追加するとサイト間の通信が容易になりますが、ここで何らかのバグが問題を引き起こしている可能性もあります。

コード内で「location.href」を完全に検索し、それをどこかで使用しているかどうかを確認してください。

ブラウザのサードパーティのアドオンもこの問題を引き起こす場合があります

これらが問題を絞り込むのに役立つことを願っています。

どこでも問題を追跡できない場合は、Web サーバーの 404 機能をオーバーライドし、Referrer を使用してソリューションを実装することをお勧めします。

于 2012-10-08T08:41:13.247 に答える