0

HTML/JQuery/AJax を使用してサーブレットを呼び出しています。フォームをサーブレットに送信しています。ただし、リソースが見つからないという404が常に表示されます。私はmavenプロジェクトを持っています。

src/main/javaパッケージにサーブレットがあります:com.mycompany.sample

フォルダにjspがありwebapp/publicます。

web.xml で、url パターンを使用してサーブレットを登録しました/myController

jspでは、以下のようにフォームにアクションを与えました:

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

そして、私は以下のように ajax 呼び出しについて言及した別の .js ファイルを持っています」

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

/myControllerしかし、リソースが見つからないという404エラーが常に発生し、onfailureアラートが表示されます。

myController私は自分formajax通話中に正しい参照を与えていますか?

ありがとう!

4

2 に答える 2

2

他の人が言うように、404の原因はアプリケーションコンテキストの欠落だと思うので、フルパスを試してください。

taglibs を使用しているかどうかはわかりませんが、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 変数を使用して取得できます。

${pageContext.request.contextPath}

それは次のようになります。

${pageContext.request.contextPath}/myController

そしてあなたのajaxコード:

$.ajax({
    type: "POST",
    url: "${pageContext.request.contextPath}/myController",
    data: dataString,
    success: function(msg) {
        alert('success');
    },
    error: function(ob,errStr) {
        alert('onfailure');
    }
});
于 2013-07-17T14:31:53.790 に答える