ホームページ  >  記事  >  ウェブフロントエンド  >  jsonとjsonpの使い方のまとめ

jsonとjsonpの使い方のまとめ

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-24 17:21:301244ブラウズ

今回は、json と jsonp の使用方法についてまとめました。json と jsonp を使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。

json

1. json の値は次のタイプになります:

① 123、1.23 などの数値 (整数または浮動小数点数)

文字列 (二重引用符で囲む)

③ 論理値 (true または false)

④ 配列 (角括弧内)

⑤ オブジェクト (中括弧内)

⑥ null

2. json 解析メソッド

① eval('(' + jsondata + ')' ); コードインジェクションは常に安全ではありません

② JSON.parse(jsondata);

JSONLint json: 文字列検証ツール

3. jQuery は ajax

jQuery を実装します。設定])

type: タイプ

url: リクエストを送信するアドレス

data: リクエストとともにサーバーに送信されるデータとともにオブジェクトです

dataType: 返されることが期待される

データタイプ 指定されていない場合、jQuery は HTTP パッケージの MIME 情報に基づいて自動的に判断します。通常は、「json」に設定できるメソッドです。リクエストが成功すると、返されたデータで コールバック関数

が渡され、成功コード

error: を含む文字列がメソッドであり、この関数はリクエストが失敗したときに呼び出されます。 XMLHttpRequest オブジェクトを渡します

jsonp

クロスドメイン

ドメイン名アドレスの構成:

http://www .abc.com :8080/scripts/jquery.js

プロトコル:// サブドメイン名、メインドメイン名: ポート番号/要求リソースアドレス

プロトコル、サブドメイン名、メインドメイン名、ポート番号のいずれかを同時に使用できない場合は、すべて異なるものとしてカウントされます。ドメイン

異なるドメイン間で相互にリソースを要求することは、「クロスドメイン」ドメインとみなされます

javascript

セキュリティ上の理由から、他のページ上のオブジェクトへのクロスドメイン呼び出しは許可されていません。

クロスドメインとは何ですか? 簡単に説明すると、JavaScript 相同性ポリシーの制限により、ドメイン名 a.com の js はドメイン名 b.com または c.a.com のオブジェクトを操作できません

クロスドメイン処理方式:

——プロキシ(バックグラウンド技術に属する) 例えば、北京のWebサーバーのバックグラウンドで、上海サーバーのサービスを呼び出し、確認してその応答結果をフロントエンドに返すと、フロントエンドは、北京でも同じドメイン名を使用し、上海でサービスを呼び出すのと同じ効果があります。

—— JSONP

a 宣言するドメイン名、b 呼び出すドメイン名

注: JSONP は GET リクエストにのみ使用でき、

POST リクエスト

(制限事項) をサポートしません

—— XHR2 によって提供される XMLHttpRequest Level2

HTML5 クロスドメイン アクセスとその他の新機能が実装されました

IE10 より前のバージョンはサポートされていません

サーバー側でいくつかの小さな変更を加えるだけです:

header("Access-Control-Allow-Origin:") ;は、すべてのサーバーにアクセスできること、または特定のドメイン名に置き換えることができることを意味します。たとえば、サーバーは上海にあり、* は北京のサーバーのドメイン名に置き換えられ、北京のドメイン名のみにアクセスできるようになります。

header("Access-Control-Allow-Methods:POST,GET");

jsonp の長所と短所について話しましょう。

同一生成元ポリシー: JavaScript は、それを含むドキュメントと同じドメイン内のコンテンツにのみアクセスできます。 jsonp は同一オリジン ポリシーにまたがることができます。jsonp を使用すると、通信用の別のプロトコルになります。 JSONP の利点は次のとおりです。XMLHttpRequest オブジェクトによって実装される Ajax リクエストのような同一生成元ポリシーによって制限されず、互換性が高く、XMLHttpRequest や ActiveX のサポートなしで古いブラウザーでも実行できます。 、コールバックを呼び出すことで結果を返すことができます。

JSONP の欠点は、GET リクエストのみをサポートし、POST などの他のタイプの HTTP リクエストはサポートしないこと、クロスドメイン HTTP リクエストのみをサポートし、異なるドメインの 2 つのページ間で JavaScript 呼び出しを行う方法を解決できないことです。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jquery での ajax 実行順序の調整

Ajax インスタンスと $.ajax インスタンスの詳細な説明

jQuery が監視ページに対して ajax リクエストを行う方法

以上がjsonとjsonpの使い方のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。