2017-05-19 3 views
0

Wenn ich CORS Anfrage und Server 401 Code als Antwort zurückgibt, kann ich keine wertvolle Antwort erhalten (Status = 0, responseText ist leer).Extjs 6 + Spring Rest: Leere Antwort für 401 Fehler

Auf extjs Seite verwende ich Rest Proxy mit überschriebene Methode:

doRequest : function(request) { 
    var me = this, 
    requestConfig = request.getConfig(); 
    requestConfig.cors = true; 
    requestConfig.useDefaultXhrHeader = false; 
    Ext.Ajax.cors = true; 
    Ext.Ajax.useDefaultXhrHeader = false; 
    me.callParent([request]); 

},

In-Browser (Chrome) ich, dass die Antwort hat 401 Fehlercode und einige Header finden. Aber wenn ich versuche, die Antwort in folgenden Methode von Proxy zu verarbeiten:

processResponse : function(success, operation, request, response) { 
    var me = this; 
    if (response.status == 401 || response.status == 403) { 
    me.handleSecurityError(response); 
    } else { 
    me.callParent([success, operation, request, response]); 
    } 

},

Ich habe nur Erfolg = false und leere Antwort.

Auch auf der Backend-Seite habe ich einen Frühling Authentifizierungsfilter: Wenn ich eine Authentifizierungsausnahme im Filter erhalte ich leere Antwort, aber wenn ich ResponseEntity mit irgendeinem Code vom Controller zurückbekomme, bekomme ich wertvolle Antwort.

Was muss ich tun, um mindestens einen Fehlercode zu erhalten?

Antwort

1

Wie konfigurieren Sie Ihre Cors?

am wahrscheinlichsten springSecurityFilterChain ist vor Ihrem cors Filter platziert, so dass Cors Filter nicht aufgerufen wird.

@Component 
@Order(Ordered.HIGHEST_PRECEDENCE) 
public class SimpleCorsFilter implements Filter 

try @Order(Ordered.HIGHEST_PRECEDENCE) so die cors Filter zu setzen, bevor springSecurityFilterChain

aufgerufen werden
Verwandte Themen