angular $ HTTP.SUCCESSメソッドにオブジェクトを返しないJavaサーブレット

StackOverflow https://stackoverflow.com//questions/22040735

質問

angular.jsを学びます。私は多くの既存の質問を検索しようとしましたが、一致する質問や答えを見つけることができませんでした。

私はJavaサーブレットにGETリクエストを送信し、それからオブジェクトを期待しています。これがAngular $ 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');
            });
.

Javaサーブレットでは、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);**
}
.

このサーブレットから応答が返されたら、角度側で$ HTTPサービスの成功につながります。どこからサーバーから送信されたユーザーオブジェクトを取得します。

データを印刷するためにconsole.logを追加すると、転送中の/html/index.htmlの内容が印刷されます。

私の研究に基づいて、私の怒りコードは正しいですが、私はJavaサーブレットで物事を正しく設定していません。(このヘルプは - Angular.jsアクションSuccess Callback

事前にありがとうございました。

役に立ちましたか?

解決

あなたのユーザーオブジェクトをJSON文字列にシリアル化し、それをレスポンスボディに置く必要があります。ジャクソンのようなライブラリは、それを追加して自分自身を混乱させる前にそれをJSON文字列に連通していて、それを自分でシリアル化することができます。Content-Typeヘッダーを設定することを忘れないでください。

他のヒント

  1. $ HTTPオブジェクトに次の行を追加します。 ヘッダ:{'content-type': 'application / x-www-form-urlencoded'}

  2. GETの代わりにPOSTメソッドを使用する 方法: '投稿'

  3. だから最後に、私たちはこのようなものを思い付きました:

    myData = {"name": "zezinho", "pass": "123xxx"};
    
    $http({
      method: 'POST',
      url: 'Login',
      data: myData,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function (data) {
      alert(data);
    }).error(function () {
      alert("login error");
    });
    
    .

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top