Announcement Announcement Module
Collapse
No announcement yet.
The request methods other than POST and GET with AJAX in Spring 3.2 don't work Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • The request methods other than POST and GET with AJAX in Spring 3.2 don't work

    I'm trying to call a method in Spring (3.2.0) via AJAX using the following jQuery 1.6.

    Code:
    function updateRoleEnabled(id)
    {
        $.ajax({
                datatype:"json",                        
                type: "PUT",
                url: "/wagafashion/ajax/UpdateUserRole.htm",
                data: "id="+id+"&t="+new Date().getTime(),
                success: function(response)
                {
                },
                error: function(e)
                {
                    alert('Error: ' + e);
                }
        });
    }
    It attempts to invoke the following method in Spring.

    Code:
    @RequestMapping(value=("ajax/UpdateUserRole"), method=RequestMethod.PUT)
    public @ResponseBody void updateUserRole(@RequestParam(value=("id")) String id)
    {
        System.out.println("id = "+id);
    }
    FireFox responds with the following error.

    HTTP Status 405 - Request method 'GET' not supported
    It works with the GET and POST methods and JSON (1.9.8) also works fine in other parts of the application. Also, it works very well with the Spring framework 3.0.2 which I was working earlier with.




    If you need to see the dispatcher-servlet.xml file, the full contents is as follows.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
    
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
    
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    
        <context:component-scan base-package="controller" />
        <context:component-scan base-package="validatorbeans" />
    
        <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />
        <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
            <property name="favorPathExtension" value="false" />
            <property name="favorParameter" value="false" />
            <property name="ignoreAcceptHeader" value="false" />
            <property name="mediaTypes" >
                <value>
                    atom=application/atom+xml
                    html=text/html
                    json=application/json
                    *=*/*
                </value>
            </property>
        </bean>
    
        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="exceptionMappings">
                <props>
                    <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">
                        fileUploadingFailure
                    </prop>
                </props>
            </property>
        </bean>
        <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="index.htm">indexController</prop>
                </props>
            </property>
        </bean>
    
        <bean id="viewResolver"
              class="org.springframework.web.servlet.view.InternalResourceViewResolver"
              p:prefix="/WEB-INF/jsp/"
              p:suffix=".jsp" />
    
        <bean name="indexController"
              class="org.springframework.web.servlet.mvc.ParameterizableViewController"
              p:viewName="index" />
    </beans>
    and the following is my entire web.xml file, if you were to see.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/applicationContext.xml
                /WEB-INF/spring-security.xml
            </param-value>
        </context-param>
        <filter>
            <filter-name>springSecurityFilterChain</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>springSecurityFilterChain</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    
    
        <filter>
            <filter-name>NoCacheFilter</filter-name>
            <filter-class>filter.NoCacheFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>NoCacheFilter</filter-name>
            <url-pattern>/admin_side/*</url-pattern>
        </filter-mapping>
    
    
        <filter>
            <filter-name>FileUploadFilter</filter-name>
            <filter-class>com.ckfinder.connector.FileUploadFilter</filter-class>
            <init-param>
                <param-name>sessionCookieName</param-name>
                <param-value>JSESSIONID</param-value>
            </init-param>
            <init-param>
                <param-name>sessionParameterName</param-name>
                <param-value>jsessionid</param-value>
            </init-param>
        </filter>
    
    
        <filter-mapping>
            <filter-name>FileUploadFilter</filter-name>
            <url-pattern>
                        /ckfinder/core/connector/java/connector.java
         </url-pattern>
        </filter-mapping>
    
        <filter>
            <filter-name>multipartFilter</filter-name>
            <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>multipartFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    
        <filter>
            <filter-name>httpMethodFilter</filter-name>
            <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>httpMethodFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    
        <filter>
            <filter-name>openSessionInViewFilter</filter-name>
            <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
            <init-param>
                <param-name>singleSession</param-name>
                <param-value>false</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>openSessionInViewFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    
    
    
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <listener>
            <description>ServletContextListener</description>
            <listener-class>listener.UnregisterDatabaseDrivers</listener-class>
        </listener>
        <servlet>
            <servlet-name>ConnectorServlet</servlet-name>
            <servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class>
            <init-param>
                <param-name>XMLConfig</param-name>
                <param-value>/WEB-INF/config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>ConnectorServlet</servlet-name>
            <url-pattern>
                        /ckfinder/core/connector/java/connector.java
                </url-pattern>
        </servlet-mapping>
    
    
         <listener>
            <listener-class>
              org.springframework.security.web.session.HttpSessionEventPublisher
            </listener-class>
          </listener>
    
        <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>*.htm</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>redirect.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
Working...
X