AJAX gibt 404 zurück in Spring MVC
ViewResolver (meine jsp-Datei in den richtigen Ordner angegeben, die auf der prefix-Wert):
<!-- Resolves views selected for rendering by @Controllers -->
<!-- to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
Servlet-mapping:
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.fst</url-pattern>
</servlet-mapping>
Controller:
@Controller
public class HomeController {
private static final Logger logger =
LoggerFactory.getLogger(HomeController.class);
@RequestMapping("/home")
public ModelAndView home(String user, HttpServletRequest request) {
logger.info("Home controller has been executed");
ModelAndView mv = new ModelAndView();
mv.addObject("userName", user);
mv.addObject("controllerName", request.getRequestURI());
mv.setViewName("home");
return mv;
}
@RequestMapping(value = "/testAjax", method = RequestMethod.POST)
public String testAjax(@RequestParam("memberId") String id,
HttpServletRequest request, HttpServletResponse response,
Locale locale, Model model) {
logger.info("Text Ajax action has been executed. My Parameter is " + id);
return id;
}
}
Dass nach dem aktivieren des Tomcat-8-server-STS IDE, Zugriff auf diese web-mit dieser url http://localhost:8080/home.fst
funktioniert okay.
Aber auf der Seite, AJAX-Aufruf wie unten wirft ein 404
Fehler:
$.ajax({
type: "POST",
url: "/testAjax.fst",
data: {"memberId" : "test"},
success: function (result) {
console.log(result)
}
});
Diese Konsole Fehlerprotokoll:
POST http://localhost:8080/testAjax.fst 404 (Not Found)
k.cors.a.crossDomain.send jquery-2.1.3.min.js:4
n.extend.ajaxhome.fst:11 (anonymous function) jquery-2.1.3.min.js:3
n.event.dispatch jquery-2.1.3.min.js:3
r.handle
Merkwürdige ist, dass es Anrufe testAjax
controller ganz gut und es gibt keinen error log auf dem server.
logger.info("Text Ajax action has been executed. My Parameter is " + id);
Wenn textAjax
Aktion wird aufgerufen mit meinen AJAX, das Protokoll wird gedruckt als auch. Ich habe es mit debug-Punkt zu (er brach in Ordnung).
Was scheint das egal zu sein??
- Versuchen Sie, mit nur /testAjax in url
- Schlimmer als zu versuchen mit
.fst
. Kann es nicht sogar Aufruf des Controllers. - ja. ich glaube, Sie brauchen zu geben, die root-url, dann versuchen Sie es erneut angeben, wie Projekt-name in der url dann /testAjax wird es funktionieren.
- Weder funktioniert..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alles ist gut Hinzufügen
@ResponseBody
annotation in der Methode, und auch ich schlage vor, Sie ändern Ihre Anfrage-MethodePOST
zuGET
Frühjahr
JQuery
@ResponseBody
dieses problem lösen könnte?