Ich versuche, Benutzernamen und andere Felder zu überprüfen, während eine Änderung Passwort Seite erstellen.Das Problem ist AJAX Aufruf in Jquery Skript trifft nicht mein Controller.Ich versuchte geben hart codierten Pfad auch im URL-Feld der Ajax-Anfrage. Unten ist mein SkriptJQuery/AJAX Anruf schlägt nicht Spring MVC Controller
Diese Funktion checkUname löst Onblur-Ereignis aus einem der Eingabefelder aus.
<script type="text/javascript">
function checkUname()
{
// get the form values
var uName = $('#username').val();
var secQues = $('#secQues').val();
var secAns = $('#secAns').val();
var dataObject = JSON.stringify({
'uName' : uName,
'secQues': secQues,
'secAns' : secAns
});
$.ajax({
url:"validateCredentials.do" ,
type: "POST" ,
data: dataObject ,
contentType: "application/json; charset=utf-8" ,
dataType : 'json' ,
success: function(response)
{
alert(response);
} ,
error: function()
{
alert('Error fetching record.... Sorry..');
}
});
}
</script>
Das ist mein MVC-Controller
@Controller
public class ArsController
{
@RequestMapping(value="validateCredentials.do", method = RequestMethod.POST)
public String changePass(@RequestParam("uName") String uName ,@RequestParam("secQues")String secQues,
@RequestParam("secAns") String secAns)
{
System.out.println("AJAX request");
Users dummyUSer = null;
String msg = null;
try
{
dummyUSer = servObj.findUser(uName);
}
catch (ArsException e)
{
System.out.println("error occurred while validating user data during password change");
e.printStackTrace();
}
if(dummyUSer == null)
{
msg = "No user exists with this username";
}
else
{
if(!secQues.equals(dummyUSer.getSecQues()))
{
msg = "Security question is not correct";
}
else
{
if(!secAns.equals(dummyUSer.getSecAns()))
{
msg = "Security answer does not match";
}
}
}
return msg;
}
habe ich nicht Idee über Java-Code, aber AJAX-Anfrage hat 'Typ:" POST "' während es sollte 'Methode:" POST "' –
Ich habe Änderungen vorgenommen, wie Sie vorgeschlagen, aber jetzt bekommen "INFO: Fehler beim Analysieren HTTP-Anfrage Header Hinweis: weiter Vorkommen von HTTP-Header-Parsing-Fehlern werden auf DEBUG-Ebene protokolliert. java.lang.IllegalArgumentException: Ungültiges Zeichen im Anforderungsziel gefunden " – Sourabh
Vielleicht könnten Sie dies verwenden [Lösung] (https://stackoverflow.com/questions/18819180/ tomcat-7-0-43-info-error-parsing-http-request-header) aber ich bin mir nicht sicher, ob es helfen wird, da ich nicht viel über Java weiß. Auch Ihre AJAX-Anfrage funktioniert jetzt gut, Sie müssen das Problem von Backend/Server debuggen. –