問題タブ [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 - AJA~X リクエストに JSONP を使用しない理由はありますか?
アプリを構築している場合、リクエストを計画していなくても、リクエスト/レスポンスAJA~Xy
を使用することの欠点はありますか?JSONP
cross-domain
私が考えることができる唯一のことは、コールバックラッパー用に余分なバイトがいくつかあるということです...
編集:
これは、潜在的な問題としても示唆されていることがわかりましたsecurity and error handling
...
エラー処理はありません。どちらかが機能する
script injection
か、機能しません。からエラーが発生した場合injection
、ページにヒットし、ウィンドウ全体のエラー ハンドラー (悪い、悪い、非常に悪い) が不足している場合は、戻り値が で有効であることを確認する必要がありますserver side
。
大した問題ではないと思いますerror handling
...私たちのほとんどは、ライブラリを使用して生成しJSON
ます...私の応答の整形式は、この質問の懸念事項ではありません。
およびセキュリティ:
server side
Web 上に参考になるドキュメントがありますが、簡単なチェックとして、スクリプト内のリファラーをチェックします。
これは、あらゆるタイプの応答で潜在的な問題のようです...確かにJSONP
、セキュリティ分野に固有のものは何もありません...?
javascript - JSONP を提供するのに最適なコンテンツ タイプは?
コールバックを指定せずに呼び出すとapplication/json
、コンテンツ タイプとして JSON 文字列を返す Web サービスがあります。
コールバックが指定されると、JSON 文字列がコールバック関数でラップされるため、実際には有効な JSON ではなくなります。私の質問は、application/javascript
この場合のように提供する必要がありますか、それとも引き続き使用する必要がありますapplication/json
か?
jquery - IE6でのjQueryJSONPの問題
IE6を使用して別のドメインのサーバーからJSONP応答を取得するときに問題が発生しました。
JSONPを使用してWebページと同じドメイン内のサーバーに対して同じAJAX呼び出しを行うと、すべてのブラウザー(IE6を含む)ですべてうまくいきます。ただし、JSONPを使用してドメイン間(XSS)で電話をかけると、InternetExplorer6がロックされます。具体的には、CPUが100%に急上昇し、「成功」コールバックに到達することはありません。ドメイン間を移動するのに成功したのは、応答が非常に短い場合(通常は150バイト未満)だけです。応答の長さは重要なようです。
私はjQuery1.2.6を使用しています。$ .getJSON()メソッドと$ .ajax(dataType: "jsonp")メソッドを試しましたが成功しませんでした。これはFF3とIE7で美しく機能します。私は同様の問題を抱えている他の人を見つけることができませんでした。このタイプの機能は、IE6のjQueryによって完全にサポートされていると思いました。
どんな助けでも大歓迎です、
アンドリュー
これは、AJAX呼び出しを行うhtmlページのコードです。このファイル(およびjqueryライブラリ)のローカルコピーを作成し、IE6を使用して試してみてください。私にとって、それは常にCPUをスパイクさせ、応答はレンダリングされません。
これが応答で返されるJSONです。JSLintによると、これは有効なJSONです(周囲のメソッド呼び出しを削除すると)。実際の結果は異なりますが、これは失敗の原因となる最も単純な例のように見えました。サーバーは、タイプ'application/json'の応答を返すASP.Netアプリケーションです。応答タイプを「application/javascript」および「application/x-javascript」に変更しようとしましたが、効果はありませんでした。私は本当に助けに感謝します。
javascript - このリモート スクリプトによって IE6 がハングするのはなぜですか?
以下の html を見て、リモート スクリプト (「http://code.katzenbach.com/Default.aspx」にあります) を読み込もうとすると IE6 がフリーズする理由を教えてください。スクリプトは JSONP を返し、ヘッダーにリストされている「callbackFunction」を実行します。正常に実行されると、1 ~ 500 の番号を示すポップアップ アラートが表示されます。これは FF3 と IE7 で正常に動作します。Internet Explorer 6 で失敗する理由がわかりません。プロセッサが固定され、すべてがハングします。
自分で実行して、同じ問題が発生した場合はお知らせください。私は一日中この問題を見つめてきました。ご協力いただきありがとうございます。
アンドリュー
json - Flickr API から写真 ID を取得するには?
JQUERY を使用して Flickr グループから写真を取得しようとしています。有効な JSON を取得できますが、実際の写真にアクセスする方法がわかりません。返される JSON には、写真が必要な空のリストが含まれています。
したがって、これをブラウザにプラグインすると、次のようになります。
私が返すjsonはこれです:
写真が 6 枚あることはわかっているようですが、写真リストは空です。私は一歩が欠けていると思います。どんな助けでも大歓迎です。
javascript - Facebookリクエストの署名要求を満たすためにjQueryの$.getJSONのコールバックとして名前付き関数を使用する
jQueryを介してFacebookAPIAdmin.getMetricsメソッドにアクセスしようとしています。サーバー側でリクエストURLを正しく作成しています(アプリを秘密にするため)。次に、を使用してリクエストするためにURLをブラウザに送信しjQuery.getJSON()
ます。
Facebookでは、信頼性を検証するために、アプリケーションシークレットでハッシュされたすべてのリクエストパラメーターのコピーをリクエストと一緒に送信する必要があります。問題は、jQueryが、データが返されるときに呼び出される匿名関数に付ける名前と一致させるために、コールバック関数自体の名前を生成したいということです。したがって、関数の名前はjQuery.getJSON()
実行されるまで使用できず、Facebookは、署名が一致しないために私の要求が不正であると見なします(実行されるまで生成されなかったため、送信する署名には正しいコールバックパラメーターが含まれていませんjQuery.getJSON()
)。
この問題から私が考えることができる唯一の方法は、関数をjQuery.getJSON()
匿名のままにするのではなく、何らかの方法で関数の名前を指定することです。しかし、jQueryAPでそうするためのオプションを見つけることができません。
ajax - JSONPとクロスドメインクエリ-読むだけでなく更新/操作する方法
だから私はTheArt&Science of Javascriptを読んでいます。これは良い本で、JSONPに関する良いセクションがあります。私は今日それについて私ができるすべてを読んでいて、StackOverflowでここにあるすべての質問を調べています。JSONPは素晴らしいアイデアですが、データを取得するための「同一生成元の問題」を解決するように見えるだけで、データを変更するための問題には対処していません。
これについて話しているすべてのブログを見逃しただけですか、それともJSONPは私が望んでいた解決策ではありませんか?
javascript - JSONP の使用時に jQuery $.getJSON (またはデータ型が「jsonp」に設定された $.ajax) エラーをキャッチするにはどうすればよいですか?
jQuery で JSONP を使用するときにエラーをキャッチすることは可能ですか? $.getJSON と $.ajax の両方のメソッドを試しましたが、どちらもテスト中の 404 エラーをキャッチしません。これが私が試したことです(これらはすべて正常に機能することに注意してください。ただし、失敗した場合は処理したいと思います):
また:
私も $.ajaxError を追加しようとしましたが、それもうまくいきませんでした:
返信ありがとうございます。
.net - .net と通信する JSONP を使用した JQuery の良い例は何ですか?
質問にあるように、Jquery が JSONP を使用して .net ページまたは Web サービスと通信する良い例 (または単なる例) は何ですか?
JQuery を使用して Web サービス/Web ページをホストする別の Web サイト (したがって、JSONP を使用する必要があります) を呼び出すページを作成しようとしています (どちらでも問題ありません)。
.net - WCFを使用したJSON-Pの例?
JSON-P で動作する WCF サービスを作成しようとしています (簡単に言えば、Web サービスのクロスドメインを呼び出してコールバックを受信する必要があるため、JSON-P で動作する必要があります)。 )。
MSDN ( http://msdn.microsoft.com/en-us/library/cc716898.aspx )でコード サンプルを見つけました。ZIP ファイルを解凍し、Samples\WCFWFCardSpace\WCF\Extensibility\Ajax\JSONP\CS に移動すると、特定のバインディングと拡張機能が作成されたプロジェクトが得られます。これにより、WCF は、 JSON を返した後の JS 関数。
残念ながら、このコードをコピーして自分のプロジェクトに実装しようとしてもうまくいきません。
次のエラーが表示されます。
構成バインディング拡張 'system.serviceModel/bindings/jsonpBinding' が見つかりませんでした。このバインディング拡張機能が system.serviceModel/extensions/bindingExtensions に正しく登録されていること、およびスペルが正しいことを確認してください。
Microsoft の開発者は、これが機能するために必要なコードの重要な部分を省略したかのようです。何を省略したのか、何を意図していたのかはわかりません。
JSON-P で WCF を使用した経験のある人はいますか?
このサンプル プロジェクトを機能させる方法があれば、私は全力で取り組みます。
Javascript から WCF へのクロスドメイン Web サービス呼び出しを行う別の方法があれば、私も興味があります。