2017-01-03 7 views
0

同様のリクエストをAngularJSアプリから送信する必要があります。curl -dコマンドを使用してください。AngularJSから "curl -d"と似たPOSTリクエストを送信

Services.factory('Set', ['$resource', 
    function($resource){ 
    return $resource('http://localhost:80/?value=:JSONOBJ', {}, { 
     query: {method:'POST'} 
    }); 
    }]); 

controllerコード:ここで

curl http://localhost:80; --data "JSONOBJ" 

serviceある

$scope.pass = function(data) { 
    var newData = []; 
    newData.push({ 
     data: [{ 
      "id": data, 
      "type": "record"]} 
    }); 

    Set.query({ 
     value: newData 
    }).$promise.then(function(data) { 
    // 
    }); 
};  

しかし、私は、要求を送信した後、サーバーから404を取得します。私はデータを適切に渡していないと思います(-dのカール)。どのように私はこれを修正することができますどのような考え?

+0

データを送信している場合は、GETではなくPOST呼び出しのように見えます。 --dataは投稿データの内容を指定します。 –

+0

申し訳ありません。私の間違い。私はその質問を更新しました。 –

答えて

0

私たちに連絡する方法は、query()ではなくpost()です。 save()関数はPOST要求を発行します。 POSTではなくGET呼び出しに使用されるquery()メソッドをオーバーライドしています。

あなたのコントローラは、このようになります必要があります。

Set.save({ 
     ego: ego},{ 
     data: JSON.stringify(editItems) 
    }).$promise.then(function(result) { 

    }); 

は私が救う

  1. を呼び出すまずオブジェクトに2つのパラメータを追加したことに注意してくださいパラメータを参照します。
  2. 2番目のパラメータは、投稿するデータを参照します。

$リソースサービスの非GETアクション:リソース([パラメータ]、POSTDATA、[成功]、[エラー])

あなたのサービス:

AppServices.factory('Set', ['$resource', 
    function($resource){ 
    return $resource('http://localhost:7776/'); 
    }]); 

注: POST要求の場合でも、クエリ文字列パラメータがある可能性がありますが、これは一般的ではなく、POST中のデータとは関係ありません。

関連する問題