2017-01-05 6 views
0

Ich habe einen Link in einer einfachen HTML-Seite:Wie wird die Webseite umgeleitet, wenn der 404-Fehler vom Klicken auf den Link erhalten wird?

<a href="http://Overview.html" style="text-decoration:none;" Title="Reports"> 
    <h5>Overview</h5><br> 
    </a> 

Der Link ist eigentlich eine leere HTML mit einem Tableau Viz eingebettet. Wenn jemand in Tableau über Berechtigungen verfügt, können sie die Seite anzeigen. Andernfalls erhalten sie eine Fehlerseite "Ressource nicht gefunden Bitte überprüfen Sie die URL und versuchen Sie es erneut."

Die Fehlerseite ist eine 404 und wenn dies asp.net wäre, würde ich wissen, wie damit umzugehen ist. Was ich tun muss, ist für die 404 zu überprüfen und wenn vorhanden ist, dann umleiten auf eine andere Seite (eine, die tatsächlich den Benutzer sagt, dass sie keinen Zugang haben und mir eine E-Mail, um Zugang zu beantragen).

Ich bin ein Neuling zu JavaScript, aber ich denke, das wird die Lösung sein ... Könnte mir jemand zeigen, wie man JavaScript an so etwas wie "http://denied.html" umleiten, wenn 404 existiert (was ich meine Seite machen werde)) Ich habe einige Beispiele gefunden, bin mir aber nicht sicher, wo das Skript in meinen HTML-Code eingefügt werden würde. Innerhalb des Links? oben auf der Seite (um die Links sofort zu überprüfen, anstatt auf den Link zu warten, der angeklickt werden soll)?

+0

Verwenden Sie den onclick-Handler, führen Sie eine Ajax-Anfrage aus, um den Zugriff "vorab zu testen" und wenn Sie 404 erhalten, senden Sie sie an eine andere Seite, ansonsten lassen Sie die Übermittlung ungehindert ablaufen. Sie sollten wirklich diese Server-Seite tun, obwohl IMO. –

+0

Klingt gut! Könnten Sie vielleicht ein kleines Beispiel geben? Ich bin ein Newb und während ich andere Sprachen kenne, muss ich vielleicht durch diesen gehen. – user3486773

+0

_ "Wenn jemand in Tableau über Berechtigungen verfügt, können sie die Seite anzeigen." _ Wie wird die Berechtigung in "Tableau" festgelegt? – guest271314

Antwort

3

Der einzige Weg, dies zu tun, wäre JavaScript hinzuzufügen (ein Ereignis-Listener auf den Link Hinzufügen), die:

  1. das Verhalten der Link Standard Bricht
  2. XMLHttpRequest Verwendet oder holen Sie die URL anfordern
  3. Testet den Stand zu sehen, ob es sich um eine 200 OK-Antwort und dann entweder:
    • Sets location zu the_link.hrefoder
    • Sets location auf die andere URL

Die same origin policy wird dies von der Arbeit über Herkunft verhindern (es sei denn, Sie die Ziel Herkunft bekommen zu CORS unterstützen und Ihnen die Erlaubnis geben).

+0

Dies ist genau das, was ich brauche. Wäre es zu viel verlangt, ein Beispiel zu geben? Wenn es ein Erfolg ist, ist es ein 200 OK. – user3486773

Verwandte Themen