Ich habe eine Webanwendung, die aus einer Videoseite und einer Web-API besteht, die eine Protokollierung durchführt (Laden der Seite, Fertigstellung des Videos oder Schließen der Seite). Ich schieße diese Ereignisse eine Ajax-Post mit:Wie kann ich einen AJAX-Post mit dem Autorisierungsheader die erste Anfrage auslösen (Windows-Authentifizierung)?
function logAction(actionToLog) {
$.ajax({
type: 'POST',
url: "/api/v/" + currentVideoName + "/" + currentUser + "/" + vid.currentTime + "/" + actionToLog + "/" + currentBrowserType + "/",
cache: false,
contentType: 'application/json; charset=utf-8'
});
Mit Fiddler, bemerkte ich, dass alle diese Anrufe zweimal ausgeführt werden:
-Header für die erste (Unauthorized 401) Anfrage. Keine Berechtigung token:
POST http://HOSTNAME/api/v/ValuePropVideo1/tfrick/0/started/Chrome/ HTTP/1.1
Host: HOSTNAME
Connection: keep-alive
Content-Length: 0
Cache-Control: max-age=0
Accept: */*
Origin: http://HOSTNAME
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Content-Type: application/json; charset=utf-8
Referer: http://HOSTNAME/v/ValuePropVideo1
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
-Header für die zweite (gültig) Anfrage. Autorisierungs-Token vorhanden:
Authorization: Negotiate YIII+QYGKwYBBQUCo...
Dies funktioniert gut für Seite geladen und Video abgeschlossen, da der Browser immer noch offen ist, aber wenn ich meine Ajax-Aufruf für den Benutzer feuern den Browser zu schließen, nur die erste Anforderung gesendet wird und ein 401 Fehler wird empfangen.
Meine Frage ist: Wie kann ich diese Ajax Anrufe mit den Windows-Anmeldeinformationen auslösen?