Réponse pour le contrôle en amont est non valide code de statut HTTP de 400

Je suis en train de faire un appel RESTE (la POSTE) à l'aide d'AJAX. C'est mon code AJAX

<script>
var settings = {
"async": true,
"crossDomain": true,
"dataType": "json",
"url": "http://localhost:port/service/myservice",
"method": "POST",
"data": '{jsondata}',
"headers": {
      "accept": "application/json",
      "Authorization": "authValue"
  }
}

$.ajax(settings)

.done(function (response) {
  console.log(response);
});
</script>

Au départ, j'ai eu cette erreur: XMLHttpRequest ne peut pas charger http://localhost:port/service/myservice. Réponse à la demande de contrôle en amont ne passent pas de contrôle d'accès: Pas de "Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine 'null' est donc pas autorisé à accéder. La réponse avait le code de statut HTTP de 400.

Pour résoudre ce problème, j'ai ajouté le code suivant dans mon dropwizard application

Dynamic filter = env.servlets().addFilter("CORS", CrossOriginFilter.class);

filter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,PUT,POST,DELETE,OPTIONS");
filter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
    filter.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, "*");
filter.setInitParameter("allowedHeaders", "Content-Type,Authorization,X-Requested-With,Content-Length,Accept,Origin");
filter.setInitParameter("allowCredentials", "true");

filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");

Après l'ajout de cette ma première exception est allé loin, mais je suis de l'exception suivante: XMLHttpRequest ne peut pas charger http://localhost:port/service/myservice. Réponse pour le contrôle en amont est non valide code de statut HTTP de 400

Cette question est-elle liée à la SCRO? Ce que je fais mal?

Mise à JOUR

Après avoir fait plus de débogage, j'ai trouvé ce comportement. Lors de l'envoi de la demande sans l'Autorisation de l'en-tête je suis 415 (Unsupported Media Type) erreur.

Je pense que quelque chose de mal avec mon code AJAX, quelqu'un peut-il svp m'aider à trouver le problème? Merci.

OriginalL'auteur Roy Justin | 2015-10-20