幸いなことに、黙示録の後、私は再び日の出を見たので、ここで記事を書くことができます。話題に戻りましょう。私は最近プロジェクトに取り組んでおり、メインドメイン名の下にある既存の関数を呼び出すためにサブドメイン名を使用する必要がありました。ということで、私はそれを思いつきました。通常のプロジェクトでこのニーズを抱えている友人がたくさんいるので、今後の参考のために記録し、皆さんのお役に立てれば幸いです。
JSONP プロトコルとは何ですか?
JSONP はパディング付きの JSON です。同一オリジン ポリシーの制限により、XmlHttpRequest は現在のソース (ドメイン名、プロトコル、ポート) からのリソースのみを要求できます。クロスドメインリクエストを行いたい場合は、HTMLのscriptタグを使用してクロスドメインリクエストを行い、レスポンスで実行するスクリプトコードを返すことができます。JavaScriptオブジェクトはJSONを使用して直接渡すことができます。このクロスドメイン通信方式は JSONP と呼ばれます。
明らかに、JSONP はスクリプト インジェクション動作であり、そのセキュリティには特別な注意が必要です。
Jquery の jsonp インスタンス
プロトコルのクライアントとサーバーの役割をそれぞれ引き受けるには 2 つのページが必要です。
クライアント コード:
/title> >
button" value="クリックしてリモート データを取得" onclick="CallJSONPServer('http://www.xxxxxxxxxxxx.cn/demos/jsonp_original.php')" />
サーバーコード
🎜>
コードをコピーします
コードは次のとおりです:
これがどのように実装されているかは、コードを見れば誰でも理解できると思います。
注意事項
:
1. jquery は ajax 処理でパラメーターを転送するために utf-8 エンコーディングを使用するため、jsonp 処理側で utf-8 エンコーディングを使用するのが最善であり、これによりコーディングが節約されます。 , utf-8 でない場合は変換することを忘れないでください。そうしないと中国語が文字化けします。
2. 要求されたサーバー URL を http://www.xxxxxxxxxxxx.cn/?act=add のように記述することは避けてください。 http://www.xxxxxxxxxxxx.cn/index.php のように記述する必要があります。 ?act=add、アプリケーション プロセス中に互換性がありません。
それで、友達が何か問題に遭遇したら、投稿して一緒に話し合いましょう。
誰でも再版を歓迎します。再版する場合は、オリジナリティを示し、リンクを追加する必要があります。そうでない場合は...ここでは単語は省略されています
署名: 一緒にコミュニケーションし、一緒に学び、困っている人を助け、成功を達成する一緒の道。