2013-07-17 2 views
0

HTML/JQuery/AJax를 사용하여 서블릿을 호출하고 있습니다. 서블릿에 양식을 제출하고 있습니다. 하지만 항상 404 리소스를 찾을 수 없다는 것을 제공합니다. 나는 maven 프로젝트를 가지고있다.ajax 양식을 제출하는 동안 URL을 언급하는 방법은 무엇입니까?

내가 서블릿을 src/main/java 패키지에 : com.mycompany.sample

내가 webapp/public 폴더에 JSP 있습니다. web.xml에

은 내가 아래로 내 양식에 행동했다 JSP에서 URL 패턴 /myController

를 사용하여 서블릿을 등록 :

<form action="myController" ............... 

을하고 난 별도의 .js 내가 아약스 전화를 언급 한 경우 파일이 .

$.ajax({ 
     type: "POST", 
     url: "myController", 
     data: dataString, 
     success: function(msg) { 
      alert('success'); 
     }, 
     error: function(ob,errStr) { 
      alert('onfailure'); 
     } 
    }); 

"아래하지만 난 항상 404 오류가 /myController 자원이 발견되지 않는 말을하고 난 onfailure 경고를 얻을 수로

정확하게 myController에 내 formajax 전화를 건네 줍니까?

감사합니다.

+0

인가 MYCONTROLLER 파일? URL은 파일을 가리켜 야합니다. 데이터를 정확히 보내려고하십니까? – Toiletduck

+0

web.xml에 등록 된 서블릿입니다. – user1016403

+0

아, 죄송합니다. 질문을 잘못 읽었습니다. 어쩌면 전체 경로를 사용해보십시오. – Toiletduck

답변

1

404의 원인이 누락 된 응용 프로그램 컨텍스트라고 생각하기 때문에 다른 말처럼 전체 경로를 시도하십시오.

당신이 태그 라이브러리를 사용하는 경우 나도 몰라하지만 당신은 바로 URL 생성하는 URL 태그를 사용할 수 있습니다, 그리고

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<c:url var="myControllerVar" value="/myController" /> 

당신의 AJAX 코드에 넣어 :

$.ajax({ 
    type: "POST", 
    url: "${myControllerVar}", 
    data: dataString, 
    success: function(msg) { 
     alert('success'); 
    }, 
    error: function(ob,errStr) { 
     alert('onfailure'); 
    } 
}); 

그렇지 않으면 애플리케이션 컨텍스트가 없다고 생각하기 때문에 전체 경로로 시도 할 수 있습니다. 다음 JSP var에 함께 검색 할 수 있습니다

${pageContext.request.contextPath}/myController 

을 그리고 아약스 코드 :

${pageContext.request.contextPath} 

그 모양을 그

$.ajax({ 
    type: "POST", 
    url: "${pageContext.request.contextPath}/myController", 
    data: dataString, 
    success: function(msg) { 
     alert('success'); 
    }, 
    error: function(ob,errStr) { 
     alert('onfailure'); 
    } 
}); 
관련 문제