2016-12-30 8 views
1

これはJson形式のデータをJavaで書かれた安らかなWebサービスに送信する角度jsコードです。それはWebサービスへの呼び出しを行いますが、私はデータを取得しません。 anglejsを使用して私の安らかなWebサービスにデータを取得していません

<script> 
     var app = angular.module("myPost", []); 
     app.controller("myControl", function ($scope, $http) { 

      $scope.title = "", 
        $scope.rating = "", 
        $scope.feedback = "", 
        $scope.role = ""; 

      $scope.send = function (title, rating, feedback, role) { 
       var feed = { 
        title: title, 
        rating: rating, 
        feedback: feedback, 
        role: role 
       }; 
       var head = {'Content-Type': 'application/json'}; 
       $http({ 
        method: 'POST', 
        url: 'myurl', 
        data: feed, 
        headers: head 
       }).success(function (data, status, headers, config) { 
        $scope.users = data; 
       }).error(function (data, status, headers, config) { 
        $scope.error = status; 
       }); 
      }; 
     }); 
    </script> 
</head> 
<body ng-app="myPost" ng-controller="myControl"> 
    <form action=""> 
     Title: <input type="text" name="title" value="" ng-model="title" />{{title}}<br> 
     Rating:<br> <select name="rating" ng-model="rating"> 
      <option>1</option> 
      <option>2</option> 
      <option>3</option> 
      <option>4</option> 
      <option>5</option> 
     </select><br> 
     Feedback: <input type="text" name="feedback" value="" ng-model="feedback"/><br> 
     <input type="hidden" name="type" value="article" ng-model="role" /> 
     <input type="submit" ng-click="send(title, rating, feedback, role)" value="submit" /> 

これは私がデータを望む私のRESTfulなWebサービスです。

@Path("/database") 
public class database { 

    @Path("/insert") 
    @POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON) 
    public String insert(@QueryParam("title") String title, 
      @QueryParam("rating") int rating, 
      @QueryParam("feedback") String feedback, 
      @QueryParam("role") String role) { 
     Data d = new Data(); 
     d.setTitle(title); 
     d.setRating(rating); 
     String response = new Gson.toJson(d); 
    } 

リターンレスポンス; }

+0

単に 'response'変数を返さないのはなぜですか? – davidxxx

+0

問題は応答ではなく、私はパラメータで定義された変数の値を取得しません。 –

+0

あまり明確ではありませんでした。私は応答をしました。コードを投稿するときは、ボタンを使ってコードをインデントします。そうしないと、表示が壊れることがあります。 – davidxxx

答えて

2

GETメソッドではなくPOSTメソッドを使用しないので、@QueryParamを使用しないでください。 POSTでは、urlを使用してクエリパラメータを送信することはありませんが、要求の本文にデータが含まれています。

残りのコントローラ側から、送信されたパラメータの名前と値に一致するフィールドとフィールドの型が含まれている場合は、パラメータとして使用できる情報を取得するために、Dataクラスを取得します。

@Path("/insert") 
@POST 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public String insert(Data data) { 
    ... 
} 
0

あなたはこれを行う必要があります。これに代えて

$scope.users = data; 

を:

$scope.users = status; 

ステータスは、要求の唯一の応答コードです。希望

+0

問題は、受信に含まれていないデータを送信することです。 –

関連する問題