4

JSONPを使用している場合、jQueryのgetJSON関数で成功時にコールバック関数を使用することに意味があるかどうか疑問に思っています。

ドキュメントから:

http://api.jquery.com/jQuery.getJSON/

jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )

"success" 関数は、JSON 応答が成功した後にトリガーされます。

ただし、関数コールバックが JSONP 応答にある JSONP を使用する場合、「成功」関数が必要ですか?

いいえと思いますが、それを確認するための情報がページに見つかりません。「成功」機能を使用する理由がある場合、ある種のセキュリティ問題を見落としたくありません。

ありがとう!

4

2 に答える 2

2

jQueryは、グローバルウィンドウオブジェクトに(自動生成された名前で)独自のコールバック関数を自動的に設定し、「?」を置き換えます。「callback=?」で 関数の名前で。そのコールバック関数はあなたを呼び出します。

つまり、jQueryを使用する通常のAJAXリクエストのように、同じ関数名を2回使用しないようにする代わりに、匿名関数をjQueryに渡すことができます。

jQuery.ajax()ドキュメントからの関連する引用:

リクエストの管理とコールバックとエラー処理の提供が容易になるため、jQueryに一意の名前を生成させることをお勧めします。GETリクエストのブラウザキャッシュを改善したい場合は、コールバックを指定することをお勧めします。

于 2012-12-27T12:12:35.627 に答える
0

もちろん、成功コールバックを使用する必要はありませんが、私はそれをうまく利用することを考えることができます-単一責任。

JSONP urlを介して渡されるコールバック関数は、JSONの解析とページの動的な変更のみを処理する必要がありますが、jQueryの成功コールバックは、受信したデータではなく、リクエスト自体に関連する他のタスクを実行するために使用できます。

于 2012-12-27T12:13:02.167 に答える