2015-09-16 6 views
5

私はhttp.deleteを呼び出し、パラメータフラグを渡す機能があります。AngularJsでhttp.deleteのときにパラメータを渡すことができないのはなぜですか?

function softDeleteDatasource(datasourceId,flag) { 
      var url = baseUrl + datasourceId; 
      return $http.delete(url, {'currentFieldSetFlag':flag}); 
     } 

その後、私は、私は、コードを次のようにreq.bodyを得ることができると仮定します。しかし、私はconsole.logにいつもundefinedを得る。私はhttp.postで全く同じコードを使用し、パラメータを渡すときはうまく動作します。

var bodyParser = require('body-parser'); 
var jsonParser = bodyParser.json(); 
router.delete('/:datasourceId', jsonParser, function(req, res) { 
    console.log(req.body.currentFieldSetFlag); 
} 

同じコードがhttp.deleteにパラメータを渡すことができない理由を私は混乱していますか?誰もそれを渡す方法を知っていますか?

+0

これをデバッグするための最初のステップは、ブラウザコンソールのネットワークタブに行き、要求を調べることです。これは、クエリ文字列パラメータとして渡す必要があります。 jsonがURLを送信しましたか、パラメータがURLに追加されましたか? –

+1

@KevinBそれはjsonを送信しないようだが、なぜhttp.postの同じコードがうまく動作するのか分からない。 – erkpwejropi

答えて

4

HTTP仕様ではDELETEのボディが許可されていますが、クライアントによっては送信されないものもあります。存在する場合、一部のプロキシ/サーバはそれらを削除/無視します。

return $http.delete(url, {params: {'currentFieldSetFlag':flag}}); 
関連する問題