2012-03-30 7 views
0

Ich habe eine lustige Situation zu erkennen, die ich nicht sicher bin, ob es meine Schuld ist, oder jQuery Schuld, und deshalb würde Ich mag euch beraten.jQuery scheint nicht eine andere Zeichenfolge mit einem Ajax-Aufruf Statuscode 403

Momentan mache ich einen Ajax-Anruf, der einen 403-Statuscode zurückgibt. Aber die Schnur, die diesen 403 begleitet, unterscheidet sich vom Standard.

Es gibt 403 access denied zurück, aber laut Spezifikation sollte es 403 Forbidden sein.

Ich weiß, wie man einen 200 Statuscode vom Server zu bekommen, ist die Frage mehr, wie mit dieser Situation umgehen.

Das ist mein Ajax jQuery-Code, und es in einem der console.log() Situationen nicht bekommen.

this.get = function(){ 
    var callUrl = self.url + "&limit=" + self.limit + "&page=" + self.page; 
    callUrl += self.getFilterQuery(); 
    callUrl += "&callback=?"; 
    console.log(callUrl); 
    $.ajax({ 
     url: callUrl, 
     dataType: 'json', 
     success: function(response){ 
      console.log(response); 
     }, 
     statusCode: { 
      403: function(response){ 
       console.log('error'); 
       console.log(response); 
      } 
     }, 
     error: function(response){ 
      console.log(response); 
     } 
    });  
} 

Hinweis: URL korrekt ist, kann ich einen 200 Statuscode, aber ich möchte den 403 access denied behandeln. Wie löse ich das?

+0

Haben Sie geöffnet 'callUrl' von Browser versuchen? – safarov

+0

was genau siehst du in der Konsole? –

Antwort

3

Sieht aus wie dieser Aufruf tatsächlich eine XHR Anfrage nicht mit gemacht wird, sondern über JSONP. ("Callback =?" in Ihrer URL) - Für JSONP-Anfragen sind Statuscode-Informationen nicht verfügbar. Sie müssen sicherstellen, dass immer eine gültige Antwort gesendet wird.

Siehe http://api.jquery.com/jQuery.ajax/

+0

gibt es dann eine Lösung, um diese Informationen zu erhalten. Es endet auch nicht in der error() {} -Funktion. Warum also? –

+1

JSONP-Anfragen werden durch Einfügen von '

1

Verweise darauf, ob du die spezifische Ablehnung bestimmen kannst. http://en.wikipedia.org/wiki/HTTP_403 Überprüfen Sie die Einstellungen des Verzeichnisses, das den Fehler verursacht.