問題タブ [jsonp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AJAX クロス ドメイン呼び出し
AJAX クロスドメイン ポリシーについて知っています。そのため、「 http://www.google.com 」を ajax HTTP リクエストで呼び出して、サイトのどこかに結果を表示することはできません。
dataType "jsonp" で試してみましたが、実際には機能しますが、構文エラーが発生します (受信したデータが JSON 形式ではないため)
外部ドメインからデータを受信/表示する他の可能性はありますか? iFrame は同じポリシーに従っていますか?
javascript - JavaScript ベースの POST リクエストを検証/保護/認証するにはどうすればよいですか?
私が開発を支援している製品は、基本的に次のように機能します。
<script>
Web パブリッシャーは、当社のサーバーからのを含むサイトに新しいページを作成します。- 訪問者がその新しいページに到達すると、ページのテキスト コンテンツが収集され、POST リクエスト (クロスドメイン、 の内部を
<script>
使用) を介してサーバーに送信されます。<form>
<iframe>
- サーバーはテキスト コンテンツを処理し、Web 上の関連コンテンツへのリンクを一覧表示する HTML フラグメントを含む応答を ( JSONP経由で) 返します。この応答は、同じ URL からテキスト コンテンツを含む別の POST 要求を受信するまでキャッシュされ、後続の訪問者に提供されます。その時点で、「新しい」応答が再生成されます。これらの POST は、キャッシュされた TTL が期限切れになったときにのみ発生します。その時点で、サーバーはそれを通知
<script>
し、ページ上でテキスト コンテンツを収集して再度 POST するように促します。
問題は、このシステムが本質的に安全ではないように見えることです。理論的には、誰でもページのコンテンツをサーバーに送信する HTTP POST リクエスト (リファラー ヘッダーを含むため、それを確認することはできません) を偽装することができます。これには、そのページの関連コンテンツ リンクを生成するために使用する任意のテキスト コンテンツを含めることができます。
これを安全にする上での主な問題は、JavaScript が公開されていることです。秘密鍵ではないため、秘密鍵やその他の暗号化された識別子やパターンを使用することはできません。
理想的には、特定の Web ページに対応する POST 要求が本物であることを何らかの形で検証するメソッドが必要です。JavaScript にコンテンツを送信させる目的は、ログイン システムの背後にある可能性があるためです。
何か案は?問題を十分に説明できたことを願っています。ご提案いただきありがとうございます。
javascript - 将来のセキュリティ対策はJSONPのクロスドメイン非同期機能を制限する可能性がありますか?
同一生成元ポリシーまたは他のブラウザーのセキュリティ対策の将来の改訂により、JSONPのクロスドメイン非同期要求機能が妨げられる可能性があるというリスクはありますか?
開発者がパブリック環境で非同期機能を提供する場合は、これを考慮に入れる必要があります。
jquery - サイトのJSONデータを保存してアクセスする方法は?
ほとんどすべてのコンテンツがリモートJSONデータからのものであるHTML/jQueryサイトを構築しています。将来(スコープ的に)データを保存してアクセスするための良い方法を思い付くのに苦労しています。
現在、サイトの読み込み時にJSONPデータを取得するjQueryプラグインを作成しました。しかし、このデータにアクセスする必要がある他の関数とjQueryプラグインがあります。
他の関数やプラグインがアクセスできるように、このデータはどこに保存する必要がありますか?
それはグローバル変数である必要がありますか?
重要な場合、このサイトはiPadでのみ実行され、サイトのバックエンドはRailsにあります。
jquery - jQueryプラグインから開始されたJSONPメソッドのパターンは何ですか?
ページ上の要素内の別のドメインから取得したデータをレンダリングするjQueryプラグインを作成しています。私はjQueryプラグインの典型的なパターンに従います:
プラグインでは、jQuery.getScript(url、[success])を使用して外部データを取得します。外部データソースを使用すると、メソッドの名前を定義でき、そのメソッドの呼び出し(JSONP)でデータをラップします。
これにより、効果的に次の結果が得られます。
スコープは、プラグインインスタンスglobal_callback
がデータに対して実行できることを制限します。また、このメソッドには、プラグインがインスタンス化されたセレクターまたはオプションに関する知識がありません。global_callback
私はそれglobal_callback
がデータを保存するだけで、プラグインがでデータを取得するだろうと思っていましたinstance_callback
。しかし、それinstance_callback
が正しいデータを取得することを確認する必要があります。プラグインの複数のインスタンスに問題があると予測しています。どうすればこれを処理できますか?
ありがとう!
jquery - JQuery での JSON / JSONP
$.getJSON メソッドが機能していないように見えるのに、$.ajax が正常に機能する理由を理解しようとしています。まず、これが私の getJSON 呼び出しです。
コールバック パラメーターをクエリ文字列に直接追加しようとして (文字列ではなく試しました)、js ファイルで定義されたコールバック メソッドへの参照を追加したことがわかります。
$.ajax の呼び出しは次のとおりです。
この例では、テキスト ボックスから取得された URL は、getJSON への直接の呼び出しと同じです。メソッド呼び出しが完了すると、successMethod が呼び出され、すべてが正常に処理されます。
私は 2 つの方法のうち後者を使用することに問題はありませんが、ドキュメントでは、getJSON が推奨される簡略化された方法であるように思われます。
すべてを機能させるための速記法で何が欠けているのか、誰か説明してもらえますか?
前もって感謝します。
google-chrome - Chrome拡張機能でのjQuery.getJSONの使用
Chrome拡張機能でクロスドメインリクエストを実行する必要があります。私はメッセージパッシングを介してそれができることを知っていますが、私はむしろjQueryイディオムだけに固執したいと思います(したがって、私のjavascriptはとしても機能します<script src="">
)。
私は通常のことをします:
しかし、エラーコンソールには次のように表示されます。
jQueryはコールバック関数をドキュメントに正しく挿入していませんか?これを機能させるために何ができますか?
(コードをChromeコンソールに貼り付けると正常に機能しますが、拡張機能のpage.jsとして配置すると、問題が発生します。)
javascript - ajax 化された Web パーツを既存の MOSS サイトに挿入する
一部のドキュメントを非同期的に取得して既存のページに表示することを目的とした Web パーツをコーディングする必要があります。残念ながら、私は多くの制限に直面しなければならず、解決策を見つけるための私の苦労は今のところ役に立たないようです.
1) Microsoft asp.net ajax を使用できません
。2) 呼び出されたサービス (ページなど) がサイトのドメイン外にあるため、Jsonp を使用する必要があります。それは大きな問題ではありません。
3) 既存のページ コードを変更する可能性がないため、JQuery などの外部ライブラリを参照できません。
4) 同じ理由で、window.onLoad イベントでメソッドを呼び出す可能性がないため、ここで問題は、ajax 呼び出しをトリガーする前にすべてが正しくロードされていることを確認するにはどうすればよいかということです。
5) 同じ Web パーツの複数のインスタンスを同じページに配置できるため、さまざまな js 関数間で競合が発生する可能性はありますか?
javascript - ajax レスポンスのバイトサイズ
私は jQuery の getJSONP を使用しており、アプリケーションの使用状況に関する統計を取得できるように、呼び出しの期間と応答のサイズをログに記録したいと考えています。これはクロスドメインの ajax 呼び出しであるため、JSONP を使用する必要がありますが、JSONP 呼び出しは XMLHttpRequest オブジェクトで行われないため、jquery の ajax からの完全なコールバックは応答コンテンツを渡しません。
私の質問は、JSONP 呼び出しから応答サイズ (コンテンツの長さ) を取得する方法です。
ここで、x は JSON 呼び出しの XMLHttpRequest オブジェクトですが、JSONP 呼び出しの場合は未定義です。
jquery - JSON-P形式に関する3つの質問
さまざまなドメインでホストされるスクリプトを作成する必要があります。このスクリプトは、サーバーから情報を取得する必要があります。
そのため、stackoverflowのユーザーから、JSON-P形式を使用する必要があると言われました。これは、調査後、これから行うことです。(JSON-Pで提供されるデータは、他のWebサイトのサーバーでホストされている情報を表示するためのものです)
サーバーからJSON-Pを出力するにはどうすればよいですか?
json_encode
からの機能と同じですかPHP
出力JSON-Pのツリーパターンを設計するにはどうすればよいですか(次のように:({"name": "foo"、 "id": "xxxxx"、 "blog": " http://xxxxxx.com " }); XML出力からこれを盗むことはできますか?(http://bit.ly/9kzBDP)
訪問者が私のウィジェットがあるWebサイトを閲覧するたびに、サーバー上でリクエストを行い、JSON-Pデータをクライアント側に表示するようにリクエストします。 CPU負荷が劇的に増加します(スクリプトを持っているWebサイトの1人の訪問者=データを出力するためのサーバー上の1つのSQL要求)ので、JSON-P情報出力を「キャッシュ」して更新する方法はありますか? 1日に1〜2回、それを「ファイル」(どの拡張子で?)に保存します。
しかし一方で、JSON-Pデータを直接(キャッシュせずに)要求することはプラスです。なぜなら、スクリプトを統合するWebサイトは、データ全体ではなく、情報のみを表示したいからです。したがって、次のようなスクリプトを作成します。
ここで、 filter =Webサイトが表示したい情報。
- ボーナス質問:JSON-Pを読み取るためにJSフレームワークを使用する必要がありますか?またはページに含めるフレームワークのない純粋なJSはそれを行うことができますか?
どう思いますか ?
どうもありがとうございます ;)