5

JavaScript はYahooから RSS XML フィードをロードできますか?

クライアント側の JS はサードパーティのドメインにアクセスできますか?

4

5 に答える 5

2

私のブログ投稿で概説されているテクニックを使用できます

次のような yql ステートメントを使用して、XML データ テーブルをクエリします。

select * from xml
  where url="http://path/to/xml
次に、html にスクリプト タグを追加します (document.createElement('script') で実行できます)。 &format=json&callback={your function here} ここで、{your yql here} は、yql ステートメントの URI エンコード バージョンに置き換えられます。

于 2009-05-08T19:03:16.957 に答える
2

これを行う簡単な方法は、ページが存在するサーバーを介してリクエストをプロキシすることです。手順は次のとおりです。

  1. スクリプト自体が要求である場合 (つまり、get または post を介して)、RSS フィードで http 要求を実行するサーバー側スクリプトを作成します。
  2. ajax を使用してサーバー側スクリプトを要求するか、そのページのメイン スクリプトから呼び出すだけです。
  3. サーバー側のスクリプトは、表示可能な形式でフィード ソースを返します。
  4. 利益!

IE 8 および FF 3.1 (不明) では、特殊なクロス サイト コールを介してこれらのリクエストを行うことができますが、最終世代のブラウザでは依然として問題が発生します。見る:

http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/ http://ejohn.org/blog/cross-site-xmlhttprequest/ FF 3.0 では機能が制限されており、不明3.1で復活するなら

ただし、上記の手順は、ブラウザーの CSS セキュリティに違反しないことが保証されていますが、サーバーでの遅延と余分なハードウェア負荷が発生します。

于 2009-03-19T02:15:55.800 に答える
2

Google Feed APIを使用して、任意のドメイン/サーバーから JavaScript で RSS を読み込むことができます。単なるプロキシではなく、元のサーバーにアクセスするのではなく、実際に Google キャッシュから RSS コンテンツを提供します。これは、Slashdot のトラフィック サージを処理できない小規模なサーバーにとって命の恩人になる可能性があります。

数年前の Silverlight に関する記事で、クロスサイト RSS アクセスに Feed API を使用しました。

于 2011-02-19T01:29:09.980 に答える
0

直接ではありません。リクエストをプロキシするというDanaの提案を使用するか、DOMに挿入するスクリプトタグによってリクエストされたカスタムコールバック関数で返されたJSONオブジェクトを本質的にラップするJSONPと呼ばれるメソッドを調べることができます。ほとんどのAPIプロバイダーはこれをサポートしています(YahooのAPIを含む)。

于 2009-05-08T18:31:20.250 に答える