0

我有一个 about.ftl 页面,当我键入 localhost:8080/ui/about 时会调用该页面,并且我已将以下代码块放入其中。通过 SendToServlet() 函数,我试图将用户信息发送到我的控制器,即 OAuthController.java

 function SendToServlet(){
                            $.ajax({

                                        url: "localhost:8080/ui/about",
                                        type: "POST",                                            
                                        data: JSON.stringify({ user:jsonObj}),                                     
                                        contentType: 'application/json',
                                        success: function(result) {
                                            alert(done);
                                        },
                                        error: function(xhRequest, ErrorText, thrownError) {
                                        alert(JSON.stringify(jsonObj));
                                        }
                                    });   
                                }
</script>

我的 Spring MVC Controller 类代码具有以下实现 - 它所做的只是接受用户的信息,然后设置当前用户:

@Controller
@RequestMapping("/about")
public class OAuthController {

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String post( @RequestBody   String items, HttpServletRequest request, HttpServletResponse response)
{




    String jsonResp = items;//sb.toString();
    ArrayList<String> usercredentials = new ArrayList<String>();
    usercredentials = parseJson(jsonResp);
    UserMethods usermethods = new UserMethods();
    usermethods.setCurrentUser (usercredentials);  
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");

    return "{\"success\":\"\"}";


}

 public ArrayList<String> parseJson(String json){


}


}

我的问题是控制器从未被调用,实际上我从未看到通过 Firebug 将 Post 请求发送到任何地方。我已经花了几天的时间,但仍然没有运气。你有什么建议吗?

4

3 回答 3

0

你不需要这样称呼它吗?

url: "localhost:8080/ui/about/post",

但首先这样做:

@RequestMapping(method = RequestMethod.POST, value = "/post")
于 2013-11-14T10:45:44.393 回答
0

您需要将值与您的函数绑定。您的 urllocalhost:8080/ui/about/post仅用于定位控制器,但它不会执行任何函数,因为您没有调用任何函数。

要调用该函数,您必须这样做:

@RequestMapping(method = RequestMethod.POST, value ="/anyValue")
public String anyFunctionName(anyParam){...}

上面的函数将绑定到 url localhost:8080/ui/about/anyValue

于 2013-11-14T10:51:28.400 回答
0

尝试添加 .html 怎么样?应用程序不会自动添加它。

于 2013-11-14T12:29:54.953 回答