Spring - 405 Die HTTP-Methode DELETE wird von dieser URL nicht unterstützt

9

Nun, ich habe ein seltsames Problem mit der Ausführung einer "DELETE" HTTP-Anfrage im Frühjahr.

Ich habe eine Controller-Methode, der ich eine DELETE-Anfrage zugeordnet habe:

%Vor%

Der Controller wird mit @RequestMapping("/authorization_servers"); zugeordnet. Wenn ich eine Anfrage über meinen DEV Http Client sende, bekomme ich die Antwort: 405 Http method DELETE is not supported by this URL .

Die Anfrage sieht so aus:

%Vor%

Wenn jemand sich das ansehen und mir helfen kann, wäre ich dankbar

    
Sasanka Panguluri 28.04.2014, 19:46
quelle

4 Antworten

13

Das wird funktionieren:

%Vor%

Sie haben @ResponseBody vermisst. Ihre Methode wurde tatsächlich angerufen; Es war, was danach geschah, das den Fehlercode produzierte.

    
Rob Worsnop 28.04.2014, 20:38
quelle
2

Ihre Anmerkung sollte folgendermaßen aussehen:

%Vor%

Ich weiß nicht, woher du die DELETE-Variable hast. : -)

    
jgitter 28.04.2014 19:59
quelle
1

Wenn das Muster @RequestMapping nicht übereinstimmt oder ungültig ist, wird 404 nicht gefunden. Wenn es jedoch zu einem anderen Mapping mit einer anderen Methode (zB GET) kommt, ergibt dies 405 Http method DELETE is not supported .

Mein Problem war genau wie dieses, außer dass mein requestMapping die Ursache war. Es war das:

%Vor%

Siehst du es? Die innere schließende Klammer fehlt, es sollte sein: { "/thing/{id:\d+}" } Der \d+ ist ein regulärer Ausdruck, der 1 oder mehr numerischen Ziffern entspricht. Die geschweiften Klammern begrenzen den Parameter im Pfad zur Verwendung mit @PathVariable .

Da es ungültig ist, kann es meiner DELETE-Anfrage nicht entsprechen:      Ссылка was zu einem Fehler 404 nicht gefunden hätte, aber ich hatte eine andere Zuordnung für GET:

%Vor%

Da das geschweifte Muster korrekt ist, aber es ist keine Methode DELETE, dann wurde eine Fehler 405-Methode nicht unterstützt.

Hoffe das hilft dir!

    
David Lotts 10.10.2014 03:32
quelle
0

stellen Sie auch sicher, dass Sie es mit "Content-Type" header="text/html" aufrufen. Wenn nicht, dann ändere es oder gib es in requestMapping an. Wenn es nicht übereinstimmt, erhalten Sie die gleiche 405.

Hoffe das hilft jemandem.

    
Jason 26.11.2015 04:08
quelle