簡體   English   中英

jQuery Ajax請求錯誤404(未找到)但它的工作原理

[英]jQuery Ajax request with error 404 (not found) but it works

我正在向服務器發送jQuery AJAX請求,但瀏覽器的控制台告訴我找不到該頁面。 仍然,我的Spring MVC簽名映射請求的URL被執行,但AJAX函數的done部分卻沒有。

這是相關代碼:

使用Javascript:

    var content = $(data).filter("#wrapper-email-content");
    $.ajax({
        url : '/sendEmail',
        type : 'POST',
        data : {
            content: content.html()
        }
    }).done(function(){
        console.log("Finished")
    });

Spring MVC簽名:

@RequestMapping(value = "/sendEmail", method = RequestMethod.POST)
public void sendEmail(
    HttpServletRequest request, String content) {

    UserTO user = (UserTO) request.getSession().getAttribute("USER");
    String email = user.getEmail();
    String title = "Your order";
    Email.sendEmail(title, email, content, null, null, null);
}

因此,在代碼中,電子郵件被發送,這意味着執行了sendEmail方法,但我仍然得到錯誤404:從AJAX請求中找不到,並且“完成”未在控制台中打印。

我究竟做錯了什么?

@RequestMapping(value = "/sendEmail",headers="Accept=application/json", method = RequestMethod.POST)
public Map<String,String> sendEmail(
    HttpServletRequest request, @RequestBody String content) {
    Map<String,String> statusMap=new HashMap<String,String>();
    UserTO user = (UserTO) request.getSession().getAttribute("USER");
    String email = user.getEmail();
    String title = "Your order";
    Email.sendEmail(title, email, content, null, null, null);
    statusMap.put("status","Mail sent successfully");
    return statusMap;
}

編輯: 如果Spring MVC控制器方法沒有返回值,請參閱發布的解決方案

不熟悉MVC Spring,但您可能需要自己返回成功狀態代碼:

public String sendEmail(
    HttpServletRequest request, @RequestBody String content) {

    UserTO user = (UserTO) request.getSession().getAttribute("USER");
    String email = user.getEmail();
    String title = "Your order";
    Email.sendEmail(title, email, content, null, null, null);
    return new ResponseEntity<String>(json,HttpStatus.OK);
}

更好的解決方案是使用注釋方法

@ResponseStatus(value = HttpStatus.OK)

有關示例,請參閱答案https://stackoverflow.com/a/12839817/954602

暫無
暫無

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

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