Angularjs Java Servlet未将对象返回到$http.success方法

Angularjs Java Servlet未将对象返回到$http.success方法,angularjs,servlets,angularjs-http,Angularjs,Servlets,Angularjs Http,我正在学习Angular.js。我试图搜索许多现有的问题,但找不到一个匹配的问题或答案 我正在向一个Javaservlet发送一个GET请求,并期望从中得到一个对象。下面是$http GET请求 $http({ method:'GET', url : '/JSONWebApp/json/?fqn=' + $scope.fqn }). success(function(data, status,

我正在学习Angular.js。我试图搜索许多现有的问题,但找不到一个匹配的问题或答案

我正在向一个Javaservlet发送一个GET请求,并期望从中得到一个对象。下面是$http GET请求

        $http({
            method:'GET',
            url : '/JSONWebApp/json/?fqn=' + $scope.fqn
        }).
            success(function(data, status, header, config){
                console.log('Success');
                console.log("data - "+data);
                console.log("status - " + status);
                console.log("header - " + header);
                console.log("config - " + config);
            }).
            error(function(data, status, header, config){
                console.log('Error');
            });
在JavaServlet上,下面是我在doGet方法中编写的内容

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       System.out.println("Incoming Request URI : " + request.getRequestURI());

   **User user = new User();
         request.setAttribute("user", user);
   RequestDispatcher view = request.getRequestDispatcher("/html/index.html");
   view.forward(request, response);**
}
当响应从这个servlet返回时,它将转到angular端的$http服务的成功。我将从中获取从服务器发送的用户对象

当我添加console.log来打印数据时,它会打印/html/index.html内容,这就是我要转发的内容

根据我的研究,我的angular代码是正确的,但我没有在Javaservlet中正确设置


提前感谢。

您需要将用户对象序列化为JSON字符串,并将其放入响应正文中。像Jackson这样的库可能会有所帮助,但在您添加该库并使自己更加困惑之前,只需自己将其序列化为JSON字符串即可。不要忘记设置内容类型标题

您需要将用户对象序列化为JSON字符串,并将其放入响应正文中。像Jackson这样的库可能会有所帮助,但在您添加该库并使自己更加困惑之前,只需自己将其序列化为JSON字符串即可。不要忘记设置内容类型标题

  • 将以下行添加到$http对象: 标题:{'Content-Type':'application/x-www-form-urlencoded'}

  • 使用POST方法而不是GET方法 方法:“发布”

  • 最后,我们得出了如下结论:

    myData={“name”:“zezinho”,“pass”:“123xxx”};
    $http({
    方法:“POST”,
    url:'登录',
    数据:myData,
    标题:{'Content-Type':'application/x-www-form-urlencoded'}
    }).成功(功能(数据){
    警报(数据);
    }).错误(函数(){
    警报(“登录错误”);
    });
    
  • 将以下行添加到$http对象: 标题:{'Content-Type':'application/x-www-form-urlencoded'}

  • 使用POST方法而不是GET方法 方法:“发布”

  • 最后,我们得出了如下结论:

    myData={“name”:“zezinho”,“pass”:“123xxx”};
    $http({
    方法:“POST”,
    url:'登录',
    数据:myData,
    标题:{'Content-Type':'application/x-www-form-urlencoded'}
    }).成功(功能(数据){
    警报(数据);
    }).错误(函数(){
    警报(“登录错误”);
    });
    
    JSON很好,但我们如何将其写入servlet中的请求体?我已经很长时间没有直接使用servlet API了,但它将类似于response.getWriter().print(“{\”name\“:\”RajaM\“}”)。另外,您需要使用servlet吗?如果这不是业务需求,那么有更简单的方法来创建JSON API。这实际上是正确的。我能够向angular发送JSON。只有一个更正:除了将json写入response.writer之外,我们不必发送到任何视图,否则将再次将html页面作为数据发送。我们只需在将json设置为response后清除编写器。谢谢,Loc.JSON很好,但是我们如何将其写入servlet中的请求体呢?我已经很长时间没有直接使用servlet API了,但它将类似于response.getWriter().print(“{\'name\':\'RajaM\'”)。另外,您需要使用servlet吗?如果这不是业务需求,那么有更简单的方法来创建JSON API。这实际上是正确的。我能够向angular发送JSON。只有一个更正:除了将json写入response.writer之外,我们不必发送到任何视图,否则将再次将html页面作为数据发送。我们只需在将json设置为response后清除编写器。谢谢。