2016-08-17 6 views
0

ユーザーがテキストエリアに入力するデータとテキスト入力を送信し、データを保存するAPIを送信しようとしています。ここでAngularJS - APIへのデータの投稿が機能していません

は関数である。

$scope.forward = function() { 

    $http({ 
    url: 'http://appsdev.pccportal.com:8080/ecar/api/reject/' + carID, 
    method: "POST", 
    data: "comments=" + this.comments, 
    data: "recipient=" + this.recipient, 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }). 
    then(function(response) { 
    $scope.output = response.data; 
    }) 

} 

それが実行されるとき、それは何それは受信者だけではなく、コメントをログに記録しています。私は "データ"を2回使用しており、最後のもの(この場合は "受信者")のみを認識しているため、推測しています。これを介して2つの値をAPIに渡すにはどうすればよいですか。あなたは、あなたが$httpに渡しているプレーンなオブジェクトからdataキーを上書きしていると述べたよう

data : {comments: this.comments, recipient: this recipient} 
+0

データを '&'で区切られた1つの文字列に連結します。 'encodeURIComponent'を忘れないでください... – dandavis

答えて

0

これはうまく働いてしまった:

data: 'recipient='+encodeURIComponent(this.recipient)+'&comments='+encodeURIComponent(this.comments), 
0

は、パスを

data: { recipient: this.recipient, comments: this.comments } 
+0

私が以下に投稿したように、これはAPIを介してサーバにデータを投稿しません。" data: "comments =" + this.comments "not"コメント:this.comments " – agon024

2

は、すべて一緒にそれを送信します:オブジェクトとして

おかげ

+0

これはAPIを介してサーバーにデータを投稿しません。"データ: "comments =" + this.comments "not" comments:this.comments " – agon024

+0

@ agon024そう?ちなみに、 '成功'は非難され、 'それで' instedを使います。以下を参照してください:https://docs.angularjs.org/api/ng/service/$http – martriay

+0

私がサーバから返信するのは「サーバ上に存在するメールアドレスを入力してください」と、フォームは{"recipient": "[email protected]"、 "comments": "test"}です。受取人の代わりに:[email protected]、comments:test、そして、コメントのテキストボックスを使ってサーバにヒットした他のコントローラでは、コメントの応答でサーバにポストします:テストとデータが保存されます。そしてそのデータを保存する唯一の方法は、 "comments =" + this.commentsです。したがって、情報はDBに保存されません。 – agon024

関連する問題