3

外部のRESTApiを使用して、Webサイトのコンテンツを動的に更新する必要があり、クロスサイトスクリプティングとAjaxという古くからの問題に遭遇しました。

私はJSONPについて読んだことがありますが、実際にはかなり汚いハックのように見えるので、100万年後にそのルートをたどりたくありません。

この問題の解決策として、外部Apiへのリクエストのプロキシとして機能するローカルサービスを用意することは「正しく」「適切」ですか?したがって、クライアントでは../RestProxy/MakeRequest、外部APIに行う必要のあるリクエストの詳細を渡すためのAjax呼び出しがあり、リクエストを実行して、返されたものをすべて返します。

どんな考えでもいただければ幸いです。

4

1 に答える 1

5

これを行うには3つの方法があります。

1. JSONP

これは、多くの一般的なAPIとフレームワークで受け入れられています。JQueryはそれを簡単にします。これをお勧めします。

2.プロキシ

あなたが説明したようにほとんど動作します。追加のステップとサーバーコードおよびサーバー負荷を追加します。ただし、結果をクライアントに送信する前に、結果をフィルタリングまたは操作することはできます。

3.Access-Control-Allow-Originに依存する

これは、同じドメインにいない場合でもサーバーから直接jsonを読み取れるようにサーバーが設定できるヘッダーです。これにより、jsonpハックは不要になりますが、サーバーがそれをサポートするようにセットアップされている必要があり、それをサポートするWebブラウザーが必要です。

Access-Control-Allow-Originは次の場所でサポートされています。

  • IE8 +
  • Firefox3.6以降
  • Safari4.0以降
  • 六価クロム
  • iOS Safari 3.2+
  • Androidブラウザ2.1以降

IE7をサポートする必要がある場合、このオプションは適していません。

于 2012-04-11T16:41:16.760 に答える