1

Microsoft が AJAX フレームワークの JSON シリアル化を実装しなければならなかった方法は、他のほとんどのライブラリとは異なっていたと聞いたことがあります。これは本当ですか?もしそうなら、それはどのように違うのですか?

4

3 に答える 3

2

いくつかの違いがあり、どちらもセキュリティに関連しています。1 つ目は、Web サービスがデフォルトで http POST のみを受け入れることです。これは、JSON ハイジャックを防ぐために行われます。これを無効にすることができます。詳細については、こちらをご覧ください。

2 番目の違いは、返されるデータに関するものです。[WebMethod] 属性で静的オブジェクトを装飾することにより、コード ビハインドで Web サービスの作成を使用する場合、返される JSON はオブジェクト naemd 'd' にラップされます。これは、 JSON 配列コンストラクター攻撃を防ぐためです。

はい、これらは Right Thing To Do (tm) を表していますが、サード パーティのライブラリとのやり取りが難しくなる可能性があります。

于 2008-10-08T23:45:04.657 に答える
2

他についてはわかりませんが、日付/時刻を機能させるために彼らがしなければならなかったいくつかのいじくり回しについて読みました(投稿を参照)。

于 2008-10-08T18:00:49.517 に答える
0

@Chris が言ったように、日付の処理方法以外に特別なことはありません。JSON 仕様には、日付をシリアル化するネイティブな方法がありません。

JSON 文字列で返される日付がない場合は、任意のデシリアライザーを使用できます。MS AJAX は、JSON 文字列が最初に有効であることを確認する方法があるため、優れています。

于 2008-10-09T10:44:57.663 に答える