AJA~X リクエストに JSONP を使用しない理由はありますか?
-
09-06-2019 - |
質問
を構築している場合は、 AJA~Xy
アプリを使用することに何か欠点はありますか JSONP
何も計画していない場合でも、リクエスト/レスポンス cross-domain
リクエスト?
私が考えることができる唯一のことは、コールバック ラッパー用に追加のバイトがいくつかあるということです...
編集:
見つけました これ それはまた示唆します security and error handling
潜在的な問題として...
エラー処理はありません。の
script injection
機能するか、機能しないかのどちらかです。エラーが発生した場合は、injection
, 、ページにヒットし、ウィンドウ全体のエラー ハンドラー (悪い、悪い、非常に悪い) が発生しない場合は、戻り値が有効であることを確認する必要があります。server side
.
そうは思わない error handling
それはとても問題です...私たちのほとんどは、ライブラリを使用して JSON
...私の応答が整形式であるかどうかは、この質問では関係ありません。
そしてセキュリティ:
役立つドキュメントが Web 上にありますが、大まかなチェックとして、
server side
脚本。
これは、どのような種類の応答でも潜在的な問題があるようです...確かに、特別なことは何もありません JSONP
セキュリティアリーナで...?
解決
欠点は?これはかなり制限されており、「GET」リクエストをトリガーし、実行されたスクリプトを取得します。サーバーがエラーをスローした場合はエラー処理が行われないため、すべてのエラーも JSON でラップする必要があります。実際にはリクエストをキャンセルしたり再試行したりすることはできません。動的に生成されたブラウザーの「正しい」動作についてのさまざまなブラウザー作成者の意見に翻弄されることになります。 <script>
タグ。デバッグは少し難しくなります。
とはいえ、時々使用していますが、問題はありませんでした。YMMV。
他のヒント
最大の制限は、サーバーを呼び出すためにブラウザーがスクリプト タグをレンダリングするための余分なオーバーヘッドかもしれないと思います。さらに、JSONP は実際には XMLHttpRequest オブジェクトを使用しないため、本当に AJAX とみなされますか?
ここで、JSONP に関して考慮すべき点がもう 1 つあります。メモリリークの可能性があります。