2

AJAXに関する一般的な質問があります。JavaScriptをAJAX応答で送信して実行しても大丈夫ですか?または、JSONまたはプレーンHTMLのいずれかで応答する唯一のエレガントな方法ですか?私の問題は、ユーザーデータに応じて、HTMLの挿入またはJavaScriptの実行につながるAJAXリクエストを処理するための最良の方法を探していることです。

どうもありがとう。

4

3 に答える 3

0

いいえ、そうしてもかまいません。jQuery$ .getScriptでそれを実行し、ajaxを介してファイルを取得してから評価します。これが、getScriptを使用するときにスクリプトタグが追加されない理由です。

于 2012-04-13T14:00:35.323 に答える
0

ajax呼び出しによって受信されたjavascriptを実行することは、XSSスタイルの攻撃につながる可能性があるため悪い考えです(evalは悪であり、すべてのジャズです)。

AJAX応答はJSON形式で提供するのが最適であり、クライアント側のスクリプトは受信したJSONに従って動作できます。

于 2012-04-13T14:04:17.420 に答える
0

AJAX応答の後に実行されるJavaScript関数は、いくつかの変数を除いて、すべての人にとって標準であると思います。その場合は、通常どおりに読み込まれるスクリプトファイルにJavaScript関数を含める必要があります。次に、ユーザーIDなどの必要な変数を使用してAJAX応答を返します。次に、その変数を使用して、毎回新しい関数を挿入する代わりに、通常どおりJavaScript関数を呼び出します。

HTMLが返された場合は、AJAXリクエストが成功すると、HTMLをDOMに直接挿入できます。

HTML応答であっても、常にJSONを返す方法だと思います。JSON応答は次のようになります。

{"responseType":"HTML", "varID":null, "payload":"<div>some html</div>"}

応答がタイプJSの場合、varIDにその変数が含まれ、ペイロードがnullになる可能性があります。これは単なる例ですが、応答を標準化するのと同様のことを行うことができますが、両方のシナリオを処理できます。

于 2012-04-13T14:04:57.470 に答える