javascript - jsonp は getreason のみを使用できます
阿神
阿神 2017-06-12 09:28:42
0
5
1213

なぜ jsonp は get リクエストのみを使用できるのでしょうか? get の理由、post の理由、またはその他の理由がありますか? ドキュメントを確認したところ、「これはテクノロジー自体の特性によって決定される」と書かれていました。 . この特徴は何を意味するのでしょうか?詳しく説明してもらえますか?どうもありがとう!

阿神
阿神

闭关修行中......

全員に返信 (5)
Ty80

JSONPは
【JSスクリプトをリクエストし、そのスクリプトの実行結果をデータとして扱う】
メソッドです。

それでは、script タグを通じて導入されたスクリプトを POST できますか?

(JSONP ライブラリのソース コードを読んだことがある場合は、一般的な実装コードが実際にはdocument.createElement('script')スクリプト タグを生成して本文に挿入していることがわかります。ここではリクエスト形式を設定する余地はありません)。

いいねを押す+0
    世界只因有你

    ドメイン名 AAJAX の JS コードは、ドメイン名 B のサーバー データをリクエストします。これはクロスドメイン AJAX リクエストであり、デフォルトでは不可能です。

    ただし、HTML には、img スクリプト タグなど、クロスドメイン リクエストを実行できる場所があり、その src 属性は、ドメイン名 A の下にないアドレス (つまり、クロスドメイン) を指します。

    その後、誰かが上記の特性を利用して、ドメインを越えてコンテンツを取得できるスクリプトの src の機能を選択し、JSONP のようなハッキング プロトコルを開発しました。 (src内のリクエストは全てGETです)

    JSONP リクエストが次のとおりであると仮定します:

    リーリー

    舞台裏で何が起こっているのか:

    1. スクリプトタグを結合して、指定されたアドレスへのGETリクエストをトリガーします

    2. サーバーはこのGETリクエストを処理し、文字列「myCallback('response value')」を返します

    3. フロントエンドスクリプトがロードされた後、実際にスクリプト内で実行されますmyCallback('response value')

    4. クロスドメインリクエストは完了しましたか?

    5. GETを使用することは可能ですか

    いいねを押す+0
      黄舟

      ページに js コードを動的に追加するのと同じように、js ファイルを投稿できると思いますか?

      いいねを押す+0
        给我你的怀抱

        リクエストしたアドレスから次のような Web ページが返されたとします。

        リーリー

        ブラウザはこの Web ページを取得した後、それを解析して

        を実行する必要があります リーリー このコード行を読んだとき、ここで js ファイルが必要であることがわかったので、この js ファイルを取得するために別のリクエストを開始しました。このリクエストでは、アドレスを入力するのと同じように、POST ではなく GET メソッドのみを使用できます。ブラウザのアドレスバーに Enter キーを押して入力するのと同じです。

        JSONPの実装原理はscriptタグを作成し、リクエストする必要があるAPIアドレスをsrcに入れることなのでGETのみ可能です

        いいねを押す+0
          代言