簡體   English   中英

Spring MVC上的AJAX POST請求返回404

[英]AJAX POST Request returning 404 on Spring MVC

我正在一個項目中,我需要使用AJAX向Spring控制器提交JSOn對象。 但是我提交了404。 請,有人可以告訴我問題是什么:

我的AJAX請求:

    $.ajax({
        url: 'NewTestApp/chkDetails/',
        type : 'POST',
        data : 'pwd='+ p,       
        timeout: 15000,
        async : false,
        dataType: 'json',
                success: function (data, textStatus, jqXHR) {
                    displayThings(data);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    $('#error').show();
            }
        });
    }
}

我的控制器:

@RequestMapping(value = "/chkDetails", method = RequestMethod.POST)
@ResponseBody
public JSONObject getDetails(@RequestParam(value = "pwd")Object sPassword) throws IOException, ParseException
{
    JSONObject obj = (JSONObject) JSONValue.parse(sPassword.toString());
    JSONObject retObj;

    if(obj.isEmpty())
    {
        System.out.println("hihi");
    }       
    retObj = chk.chkStrength(obj);
    return retObj;  
}

我的web.xml:

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>

和我的spring-servlet.xml:

<context:component-scan
    base-package="main.pwd.controller" />


<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="suffix" value=".jsp" />
    <property name="prefix" value="/WEB-INF/jsp/" />
</bean>

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">           
        <map>
            <entry key="/checkDetails.html">
                <ref bean="PasswordServiceController"/>
            </entry>
        </map>
    </property>

</bean>
  <bean id="PasswordServiceController" class="main.pwd.controller.PasswordServiceController"> </bean>

我對春季非常陌生,這是我的第一個項目。 可以肯定,我在映射方面做錯了。

如果目錄結構有幫助:

NewTestApp | 網站內容| | -WEB-INF | | | | -web.xml | | -spring-servlet.xml | | -jsp | | | |-checkDetails.jsp | -index.jsp

index.jsp可以調用checkDetails.jsp。 另外,AJAX JSON提交也沒有問題,當不將其實現為Spring MVC時,該應用程序運行正常。

我是否需要為其添加另一個映射?

您的調度程序servlet的servlet映射是* .html,因此您的請求也應該發送到/NewTestApp/chkDetails.html ,以使其由Spring控制器處理。 如果希望由/NewTestApp/chkDetails處理,則調度程序Servlet映射應為/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM