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 メソッドをエイリアシングするのでしょうか?null
DELETE
では、なぜこのようなことをしないのですか?それと何のUser
関係があるのか わかりません...
var Comment = $resource('/comments/:id', {id: @id}, {
destroy: {method: 'PUT'}
});
new Comment({id: 123, content: null}).$destroy();