Тип jquery.ajax: пост странное поведение

начало обновления

oooooops, я только что обнаружил, что это не проблема получения и публикации, а проблема SpringMVC RequestMapping и косой черты и http 302.

когда вызывается запрос / редактор get, 302 возвращается, и местоположение ответа - / editor /,

редактор сети

деталь ответа

но если я изменю @RequestMapping("editor") из EditorController в @RequestMapping("anyWords"), то все работает нормально.

введите описание изображения здесь

Вопрос в том, почему @RequestMapping("editor") имеет проблему косой черты в то время как @RequestMapping("anyWords") работает отлично.

конец обновления

Я просто пытаюсь вызвать простой запрос ajax-post, но меня смущает странное поведение.

Я утверждаю тип ajax: "post", но если я не дам URL-адресу суффикс "/", например "/editor" вместо "/editor /", результатом всегда будет запрос "get".

Обязательно ли добавлять суффикс '/' к запросу 'post'?

вот немного конф и код

SpringMVC Controller

@Controller
@RequestMapping("/editor")
public class EditorController {

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView getEditor() {       
        return new ModelAndView("/WEB-INF/editor.jsp");
    }

    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public String saveEditor(Article article) {
        // some code
        return "something";
    }
}

функция js для вызова ajax-запроса

MyShare.editor = {
    checkAndSubmit : function(){
        var title = $("#title").val();
        var author = $("#author").val();
        $.ajax({
            url : "/editor/",
            // problem here, without a '/' suffix,
            // it will always call a get request.
            // url : "/editor"
            type : "POST",  
            data : {
                'title' : title,
                'author' : author
            },
            success : function(response){
                 // some code
            },
            error : function(response){
                // some code
            }
        }); 

    }
};

плагин для котов

<plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat6-maven-plugin</artifactId>
            <version>2.0-beta-1</version>
            <configuration>
                <url>http://localhost:8080/manager/html</url>
                <server>tomcat-local</server>
                <path>/</path>
                <contextReloadable>true</contextReloadable>
            </configuration>
        </plugin>
    </plugins>

У меня нет 10 репутаций для публикации образа сети...:(когда я вызываю функцию js, она сначала вызывает запрос на публикацию, который имеет статус code302, а затем вызывает запрос на получение, который имеет статус code200, например, следующий текст

name    method  status  type        initiator
editor  POST    302     Pending     jquery-2.0.3.js:7845
editor/ GET     200     text/html   http://localhost:8080/editor

Я только что создал еще один тестовый контроллер, и все работает отлично. Я имею в виду, что без суффикса '/' можно по-прежнему вызывать запрос ajax-post.

у кого-то есть чувство разницы между EditorController и TestController

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public String get(String title) {
        return "get : " + title;
    }

    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public String post(String title) {
        return "post" + title;
    }
}

0 ответов

Другие вопросы по тегам