2010-01-15 3 views
7

Ich führe die folgenden jquery Ajax Aufruf an eine asp.net mvc-Controller, die funktioniert, aber auf der Firebug-Konsole scheint es wird dreimal ausgeführt. Die ersten beiden Male gibt es 401 Unauthorized und die letzte Zeit gibt es 200 Ok. Könnte irgendjemand etwas Licht auf das werfen, was passiert, wenn ich diese Bitte stelle und wie ich die ersten Anrufe verhindern könnte.jquery ajax Anruf für asp.net mvc Anwendung bekommen zwei nicht autorisierte Antworten dann Ok

$.ajax({ 
    type: 'POST', 
    url: '/Core/GetVariableSet', 
    dataType: 'json', 
    data: {}, 
    success: function(response) { 
     thisObject.Date = new Date(response.Date); 
     thisObject.UserId = response.UserId; 
     thisObject.UserName = response.UserName; 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     Util.errorhandling.AJAXError($('#main'), 
         'Error Getting Variables', 
         XMLHttpRequest, 
         textStatus, 
         errorThrown); 
    } 
}); 
+0

Ich habe dies auch auf .net apps gesehen. Ich wäre interessiert zu wissen, was das verursacht. –

+4

Ich erinnere mich daran, dass dies auf, wie firefox/Browser Validation gesendet: die erste 401 sagt, Sie müssen gültig, die zweite 401 ist, weil der Browser die Validierung falsch sendet und dann schließlich sendet es richtig und Sie erhalten Ihre 200. –

+0

Ich dachte, das könnte der Fall sein, aber gibt es irgendeine Möglichkeit, dass ich dies beim ersten Mal richtig authentifizieren kann? Ich verwende NTLM zur Authentifizierung. – bobwah

Antwort

2

Ich bemerkte dies mit mir geschah, als ich in Firefox Debuggen wurde. Der Fix, den ich gefunden habe, war, die Seite zu der Liste "network.automatic-ntlm-auth.trusted-uris" in firefoxs about: config hinzuzufügen.

Achten Sie darauf, dass der Port eingeschlossen wird, wenn der lokale Entwicklungsserver Probleme verursacht.

+0

Ich denke, diese Antwort ist auf dem richtigen Weg. Ich habe diese Fehler bei Firebug gesehen, wenn die asp.net-App die integrierte Windows-Authentifizierung verwendet. – Icarus

0

Schwierig zu sagen, ohne den Kontext, in dem es ausgeführt wird. I.e. wenn die Hinrichtungen abgeschlossen sind, und warum es dreimal ausschlägt.

Die Tatsache, dass es versucht wird, bis die 200 empfangen wird, lässt mich vermuten, dass es eine Art von Rely geht. Möglicherweise ist etwas nicht fertig geladen?

Lassen Sie sich über den 401-Fehler lesen, um zu sehen, ob dies ein Licht auf Sie wirft.

http://www.checkupdown.com/status/E401.html