0

Web アプリのクライアントに送り返す AJAX 応答の形式として使用される JSON オブジェクトを設計しました。htmlコードを入れて強化中です。しかし、このトピックに関する正確な知識と経験が不足しているため、必要なキャラクターエスケープはかなり不快です.

サーバーエンドの言語/フレームワークとして Python/Django を使用しています。Python の文字列リテラルからブラウザーが使用する適切な HTML ノードに移動するには、文字エスケープに関する漠然とした知識があれば、次の 2 段階の文字エスケープが必要になると思います。

  1. Python 文字列リテラルを JSON にシリアル化し、JSON で必要な文字をエスケープします。
  2. JSON オブジェクトがクライアント側で受信されたら、HTML で必要な文字をエスケープします。jQueryを使用していることに注意してください。

上記の 2 つの段階に関する私の見解は正しいですか? もしそうなら、どうすればそれらを達成できますか?

例を挙げて説明する方が簡単な場合。これが1つです:

s = '<a href="http://www.foo.com/bar/">"Click Here&Here"</a>'

sPython 文字列リテラルです。そして、私はそれがなるのを見たいです

<a href="http://www.foo.com/bar/">"Click Here&amp;Here"</a>

HTMLで。

4

1 に答える 1

2

クライアント側でエスケープする必要がありますか? JSON にエンコードする前に Python で実行できます。

from cgi import escape
from json import dumps

ajax_response = dumps(escape('<a href="http://www.example.com/path/location'
                             '?query=string&more=this#anchor">'
                             'FooBar & Friends</a>'))
于 2012-04-17T19:36:02.197 に答える