Bei mir hat nichts funktioniert. Alles, was ich sah, war der HTML-Code der Anmeldeseite, der mit dem Code 200 zur Client-Seite zurückkam. (Zunächst 302, aber dieselbe Ajax-Anfrage, die die Anmeldeseite innerhalb einer anderen Ajax-Anfrage lud, die eigentlich eine Weiterleitung sein sollte, anstatt den reinen Text der Anmeldeseite zu laden).
Im Login-Controller habe ich diese Zeile hinzugefügt:
Response.Headers["land"] = "login";
Und in der globalen Ajax-Handler, habe ich dies getan:
$(function () {
var $document = $(document);
$document.ajaxSuccess(function (e, response, request) {
var land = response.getResponseHeader('land');
var redrUrl = '/login?ReturnUrl=' + encodeURIComponent(window.location);
if(land) {
if (land.toString() === 'login') {
window.location = redrUrl;
}
}
});
});
Jetzt habe ich keine Probleme mehr, und es funktioniert wie geschmiert.
30 Stimmen
Versuchen Sie es mit encodeURI() y decodeURI() .
1 Stimmen
Voir JavaScript urlencode-Funktion .
1 Stimmen
Sie können dieses Tool hier verwenden: phillihp.com/toolz/url-encode-decode
4 Stimmen
EncodeURIComponent()
0 Stimmen
Bitte gehen Sie zu diese Antwort da sie die einzige ist, die moderne Javascript-Funktionen verwendet (die nur im Internet Explorer unterstützt werden).