Spring @RequestMapping Ajax url不匹配

时间:2017-05-10 07:36:48

标签: ajax spring request-mapping

我正在尝试向我的spring-handler发送get-request,但它不起作用。 我的经纪人:

@RequestMapping(value="/master_record/details")
public @ResponseBody String user(@RequestParam(value="user") String user_name,
                                 @RequestParam(value="password") String password) {
    return "/success";
}

我的ajax请求:

function toggleHistory(nuser, pw){

        $.ajax({
            type : "GET",
            url : 'master_record/details',
            data : {"user":  nuser, "password": pw},
            success : function(result) {
                 console.log("SUCCESS");
            },
            error : function(data, textStatus, errorThrown) {                   
                console.log("Error is ", textStatus, errorThrown);
            }
        });         
    };

当我正在查看链接时,我看到:

  

http://localhost:8080/webapp/master/master/record?user=me&password=secret&_=149440118200

我看到第三个参数和值:_ = 149440118200 那个参数是什么?

错误日志

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /webapp/master/master_record/details. Reason:
<pre>    Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                

</body>
</html>

1 个答案:

答案 0 :(得分:2)

很明显你的网址错了

    function toggleHistory(nuser, pw){

    $.ajax({
        type : "GET",
        url : 'http://loclhoast:8080/master/record',
        data : {"user":  nuser, "password": pw},
        success : function(result) {
             console.log("SUCCESS");
        },
        error : function(data, textStatus, errorThrown) {                   
            console.log("Error is ", textStatus, errorThrown);
        }
    });         
};

当您将网址设置为“主/记录”时,它将采用项目路径之后的路径,该路径明确位于webapp / master下。

您需要指定您在服务器上运行的计算机的完整URL,在我的示例中,它的localhost:8080是tomcat的默认值。