2017-10-04 7 views
2

Je reçois cette erreur après avoir appelé la requête AJAX. Le contrôle touche le serveur et tout le processus fonctionne correctement. Mais avant d'appeler le code du contrôleur, j'obtiens cette erreur et je suis coincé ici.La requête GET ou POST de l'appel AJAX n'est pas traitée

Jsp

<form id="pop-up3reset"> 
.................. 
<input type="submit" value="Send" id="manualModePopupSave" /> 

Ajax Appel

$(document).ready(function() { 
$('#manualModePopupSave').click(function() { 
var userno=$('#userno').val(); 
var on_off1 = $('#pop-up3onoff1').is(':checked') ? 1 : 0; 
var search = { 
"user_no" : userno, 
"onoff1" : on_off1 
}; 

var myJsonStringsearch = JSON.stringify(search); 
alert(myJsonStringsearch); 
$.ajax({ 
type : "POST", 
url : "setManualModeForAjax", 
contentType : "application/json", 
async : true, 
cache : false, 
data : myJsonStringsearch, 
dataType : 'json', 
success : function(response) { 
    $('#onoff1').val(response.onoff1); 
if(response.errorMessage == "-1"){ 
    sweetAlert("not in communication", "","error"); 
}else if(response.errorMessage == "M,1"){ 
    sweetAlert("Request is Not Reachable", "","error"); 
} 
}, 
}); 
}); 
}); 

Contrôleur

@RequestMapping(value = {"/setManualModeForAjax"}, method = RequestMethod.POST, produces = "application/json") 
public @ResponseBody ManualModeFromAjax setManualMode(@RequestBody ManualModeFromAjax manualModeFromAjax)throws Exception 
{ 
    System.out.println("In manual mode for AJAX request"); 
    .................... 
    return manualModeFromAjax; 
} 

org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported AVERTISSEMENT: Demande méthode 'POST' non pris en charge org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported AVERTISSEMENT: Méthode de requête 'GET' non soutenu

Réseau

URL de demande: http://localhost:8080/PROJECT/login?

Demande Méthode: GET

Code du Statut: 405 Méthode non autorisée

Adresse à distance: [:: 1]: 8080

S'il vous plaît aider

+0

Peut-être que cela vous aidera: https: // stackoverflo w.com/questions/15699350/spring-request-method-post-not-supported –

+0

merci pour votre réponse .. je l'ai essayé. Mon problème est avec l'appel Ajax seulement. – Hema

+0

dans le réseau, il dit «GET»? –

Répondre

2

Ceci est parce que votre bouton est un submit, pas seulement un button. Alors que lorsque vous cliquez sur le bouton la méthode javascript liée à l'action est exécutée mais que vous n'empêchez pas l'action par défaut, le formulaire est également envoyé comme x-www-form-urlencoded et parce que, je devine juste, votre contrôleur est seulement prêt à traiter form-urlencoded demandes est lorsque vous obtenez la méthode de requête non prise en charge erreur.

Vous avez différentes options. Vous pouvez:

  • utilisation button que le type de votre bouton au lieu de submit
  • utilisation Event.preventDefault
  • juste retour faux sur votre méthode javascript

javascript doit être quelque chose comme:

$('#manualModePopupSave').click(function(e) { 
    //Use this... 
    e.preventDefault(); 

    var userno=$('#userno').val(); 

    .... 

    //or this. 
    return false; 
}); 
+0

Merci beaucoup .. Cela a fonctionné .. Mais y aura-t-il la demande GET par défaut ..? – Hema

+0

Ni votre balise de formulaire ni votre appel ajax définissent une valeur pour la propriété method. Dans les deux cas, la valeur par défaut est GET. https://www.w3.org/TR/html401/interact/forms.html#h-17.3 http://api.jquery.com/jquery.ajax/ Vous devez utiliser la méthode au lieu du type sur l'appel ajax. – alfcope

+0

Ok je l'ai eu .. Merci pour votre explication – Hema