なぜ jsonp は get リクエストのみを使用できるのでしょうか? get の理由、post の理由、またはその他の理由がありますか? ドキュメントを確認したところ、「これはテクノロジー自体の特性によって決定される」と書かれていました。 . この特徴は何を意味するのでしょうか?詳しく説明してもらえますか?どうもありがとう!
闭关修行中......
JSONPは【JSスクリプトをリクエストし、そのスクリプトの実行結果をデータとして扱う】メソッドです。
それでは、script タグを通じて導入されたスクリプトを POST できますか?
(JSONP ライブラリのソース コードを読んだことがある場合は、一般的な実装コードが実際には document.createElement('script') スクリプト タグを生成して本文に挿入していることがわかります。ここではリクエスト形式を設定する余地はありません)。
document.createElement('script')
ドメイン名 AAJAX の JS コードは、ドメイン名 B のサーバー データをリクエストします。これはクロスドメイン AJAX リクエストであり、デフォルトでは不可能です。
ただし、HTML には、img スクリプト タグなど、クロスドメイン リクエストを実行できる場所があり、その src 属性は、ドメイン名 A の下にないアドレス (つまり、クロスドメイン) を指します。
その後、誰かが上記の特性を利用して、ドメインを越えてコンテンツを取得できるスクリプトの src の機能を選択し、JSONP のようなハッキング プロトコルを開発しました。 (src内のリクエストは全てGETです)
JSONP リクエストが次のとおりであると仮定します:
舞台裏で何が起こっているのか:
スクリプトタグ<script src="http://path/to/server/b?A=a&B=b&callbackFunctionName=myCallback"></script>を結合して、指定されたアドレスへのGETリクエストをトリガーします
<script src="http://path/to/server/b?A=a&B=b&callbackFunctionName=myCallback"></script>
サーバーはこのGETリクエストを処理し、文字列「myCallback('response value')」を返します
フロントエンドスクリプトがロードされた後、実際にスクリプト内で実行されますmyCallback('response value')
myCallback('response value')
クロスドメインリクエストは完了しましたか?
GETを使用することは可能ですか
ページに js コードを動的に追加するのと同じように、js ファイルを投稿できると思いますか?
リクエストしたアドレスから次のような Web ページが返されたとします。
ブラウザはこの Web ページを取得した後、それを解析して
JSONPの実装原理はscriptタグを作成し、リクエストする必要があるAPIアドレスをsrcに入れることなのでGETのみ可能です
<script>タグがあるため、GETのみがサポートされています
JSONPは
【JSスクリプトをリクエストし、そのスクリプトの実行結果をデータとして扱う】
メソッドです。
それでは、script タグを通じて導入されたスクリプトを POST できますか?
(JSONP ライブラリのソース コードを読んだことがある場合は、一般的な実装コードが実際には
document.createElement('script')
スクリプト タグを生成して本文に挿入していることがわかります。ここではリクエスト形式を設定する余地はありません)。ドメイン名 AAJAX の JS コードは、ドメイン名 B のサーバー データをリクエストします。これはクロスドメイン AJAX リクエストであり、デフォルトでは不可能です。
ただし、HTML には、img スクリプト タグなど、クロスドメイン リクエストを実行できる場所があり、その src 属性は、ドメイン名 A の下にないアドレス (つまり、クロスドメイン) を指します。
その後、誰かが上記の特性を利用して、ドメインを越えてコンテンツを取得できるスクリプトの src の機能を選択し、JSONP のようなハッキング プロトコルを開発しました。 (src内のリクエストは全てGETです)
JSONP リクエストが次のとおりであると仮定します:
リーリー舞台裏で何が起こっているのか:
スクリプトタグ
<script src="http://path/to/server/b?A=a&B=b&callbackFunctionName=myCallback"></script>
を結合して、指定されたアドレスへのGETリクエストをトリガーしますサーバーはこのGETリクエストを処理し、文字列「myCallback('response value')」を返します
フロントエンドスクリプトがロードされた後、実際にスクリプト内で実行されます
myCallback('response value')
クロスドメインリクエストは完了しましたか?
GETを使用することは可能ですか
ページに js コードを動的に追加するのと同じように、js ファイルを投稿できると思いますか?
リクエストしたアドレスから次のような Web ページが返されたとします。
リーリーブラウザはこの Web ページを取得した後、それを解析して
を実行する必要があります リーリー このコード行を読んだとき、ここで js ファイルが必要であることがわかったので、この js ファイルを取得するために別のリクエストを開始しました。このリクエストでは、アドレスを入力するのと同じように、POST ではなく GET メソッドのみを使用できます。ブラウザのアドレスバーに Enter キーを押して入力するのと同じです。JSONPの実装原理はscriptタグを作成し、リクエストする必要があるAPIアドレスをsrcに入れることなのでGETのみ可能です
<script>タグがあるため、GETのみがサポートされています