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..
InformationsquelleAutor hina10531 | 2015-03-05
Schreibe einen Kommentar