Ajax afficher les résultats dans une 405 (Méthode Non Autorisée) - Spring MVC

Je suis en train de faire un appel ajax de mon Ressort contrôleur/action avec la méthode POST, et retourne un objet à partir du serveur avec @ResponseBody. La situation étrange, c'est qu'il ne fonctionne plus après l'ajout de printemps couche de sécurité, tout fonctionnait bien avant. Je vais essayer d'expliquer mes démarches pour résoudre le problème, puis vous montrer le code/captures/etc.

1.
Après quelques recherches, j'ai trouvé quelques réponses disant que le problème est peut être lié avec csrf mécanisme, donc je l'ai désactivé et j'ai toujours le problème. (spring-security.xml ci-dessous)

2.
J'ai fait une capture wireshark pour vérifier la demande/réponse. Ma requête ajax est OK, mon contrôleur de déclaration est OK, mais je ne comprends pas pourquoi, la 405 réponse indique > Permettre: OBTENIR (capture ci-dessous)

3.
J'ai essayé d'accéder à mon contrôleur de l'action par le biais du navigateur (c'est à dire, faire une requête GET), et j'obtiens l'erreur d'État HTTP 405 - Demande de la méthode " GET " non pris en charge!

4.
J'ai essayé de changer la RequestMapping(méthode...) à RequestMethod.OBTENIR et la demande arrive au contrôleur et fonctionne bien, mais je ne veux pas qu'il travail sur la méthode GET, je veux une requête POST.

5.
Changé la RequestMapping(consomme, produit, en-têtes) pour accepter tous les types de données, mais encore 405...

Cela me rend fou! Je poste mes fichiers ci-dessous, de sorte que vous pouvez vérifier les gars, tout conseil sera appréciée. Merci! (NOTE IMPORTANTE: ceci est mon désespoir de configuration)

spring-security.xml

<beans:beans 
     xmlns...(all needed declarations)>

<http pattern="/js/**" security="none" />
<http pattern="/css/**" security="none" />

<!-- enable use-expressions -->
<http auto-config="true" >
    <access-denied-handler error-page="/403" />
    <intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')" />
    <intercept-url pattern="/login" access="isAnonymous()" />
    <intercept-url pattern="/403" access="permitAll" />
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />

    <form-login  login-page="/login"
                 username-parameter="email"
                 password-parameter="password"
                 authentication-failure-url="/login?failed" />

    <!--
    <csrf/>
    -->
</http>

 ..... (authentication)  

AdminController.java

@Controller
@RequestMapping("/admin**")
public class AdminController {

    ... (all my autowired beans)

    @RequestMapping(
        value = "/events/loadEvents",
        method = RequestMethod.POST,
        consumes = MediaType.ALL_VALUE,
        produces = MediaType.ALL_VALUE,
        headers = "Accept=*/*")
    @ResponseBody
    public Event loadEvents(@RequestParam("parentId") long parentId) {
        ... (my logic)
        return event;
    }
}

Demande (capture wireshark)
Ajax afficher les résultats dans une 405 (Méthode Non Autorisée) - Spring MVC

Réponse (capture wireshark)
Ajax afficher les résultats dans une 405 (Méthode Non Autorisée) - Spring MVC

MODIFIER
ajax de jquery appeler du code

$.ajax({
    type: 'POST',
    cache: false,
    url: /admin/events/loadEvents,
    data: { parentId: 1 },
    dataType = 'json',
    contentType = 'application/json',

    ...
});
Je ne peux pas voir vous envoyer les informations d'identification? Comment est votre 403 mis en œuvre?
- Je atteindre cette zone de l'app seulement après avoir authentifié, c'est à dire, la première étape est de s'authentifier, puis la session d'authentification est gérée par Spring Security. Et comme je l'ai mentionné, si je change le jquery appel et contrôleur de la méthode d'action pour l'OBTENIR, il fonctionne très bien. Le problème, c'est pourquoi je me 405 POST si tout est bien configuré.
quelqu'un peut-il jeter la lumière sur les raisons qu'il a de donner 405 à la place de tout autre statut? 405 doit être indiqué lors de l'URI ne prend pas en charge la méthode HTTP à droite?

OriginalL'auteur rmpt | 2015-12-13