Lèse が指摘したように、javascript タイプnullは URL パラメータの有効な値ではありません。
JavaScript のnull値が string と同じではありません'null'。したがって、URL を次のように表示したい場合は/comments/123?content=null、 string を指定するだけ'null'です。URL パラメータは JSONnullではなく、javascript の値は同じ意味ではありませんcontent=null。後者の場合、null は特定のサーバーによって文字列値として解釈されるためです。
サーバーに「値」として送信する標準化された方法がないため、 Angular の $http サービスは、params オブジェクトで null および未定義の値をフィルターしてから URL を作成します。undefined意味がありません。'undefined'ただし、 orのような文字列を送信したい場合は問題ありませんが'null'、サーバー側でそのように解釈するには実装が必要です。
リクエストを作成している場合PUT、データの一部がリソース内で JSON シリアル化され、一部が URL パラメーターを介して送信されるのはなぜですか? サンプル コードの表現が不十分なだけかもしれませんが、その例PUTでは、レスポンス ボディ{"id": 123}と urlを含むリクエストを送信しています/comments/123。それは冗長ではありませんか?contentプロパティとデータを JSON 文字列でサーバーに送信しないのはなぜですか? 次に、JSON 文字列は型の値を表すことができるnullため、探している値が実際に含まれます。また、レコードを削除/破棄している場合、なぜリクエストを使用せず、代わりに PUT リクエストで destroy メソッドをエイリアシングするのでしょうか?nullDELETE
では、なぜこのようなことをしないのですか?それと何のUser関係があるのか わかりません...
var Comment = $resource('/comments/:id', {id: @id}, {
destroy: {method: 'PUT'}
});
new Comment({id: 123, content: null}).$destroy();