0

そこで、Webアプリケーションとモバイルアプリケーションの両方からアクセスできるAPIプロバイダーを実装しました。

これは大規模なプロジェクトではない可能性が高いですが、学習経験を最大限に活用し、できる限りオタクを探したいと思います。

とにかく、私が理解していることから、スケーリングを容易にするために、APIプロバイダーサービスと実際のWebサイトを別々のドメインに配置する方が良いようです。たとえば、twitterにはウェブサイトtwitter.comとapi.twitter.comがあります。

差し迫った問題の1つは、AJAXを使用したクロスドメインの問題に対処することです。私が収集したものから、クロスドメインAJAXを実装する2つの方法があります

  1. JSONP:聞いたけど、名前以外はよくわからない
  2. プロキシサーバー:つまり、私のWebサイトはASP.NET MVCの上に構築されており、すべてのクロスドメインAPI要求を処理するAPIProxyコントローラーを作成することを考えていました。

そうすれば、$。ajax(settings)を介してAJAX呼び出しを行い、APIProxyコントローラーに対応するWebサイトのURLを渡します。次に、APIProxyコントローラーは適切なPOSTサーバー呼び出しを行い、JSON応答を処理して、応答をAJAXコールバック関数に返します。

iPadや多くのモバイルブラウザなどのデバイスはFlashをサポートしていないため、Flashを使用したくないというflXHRについて聞いたことがあります。

とにかく、別のドメインまたはサブドメインでAPIプロバイダーを使用してWebサイトを管理する際のベストプラクティスのいくつかを尋ねたかっただけです。

4

1 に答える 1

2

JSONをリクエストすると、オブジェクトまたは配列が返されます。スクリプトタグは、同じドメインのルールの対象ではありません。したがって、AJAX呼び出しを行う代わりに、基本的にこれを行います。

<script src="Http://api.example.com?param1=something&etc"></script>

これでJSONが読み込まれ、JavaScriptとして実行されます。

...しかし、それ自体で「実行」する単純なオブジェクトまたは配列はあまり役に立ちません。したがって、JSONをリクエストするときは、コールバック関数の名前も含めます。プロバイダーは、コールバックが提供されたことを確認すると、JSONを返すだけでなく、実際にはJavaScriptを返します。JSONは引数として関数に渡されます。

次に、スクリプトが読み込まれると、関数(既に定義済み)が呼び出され、操作するJSONが与えられます。

それがJSONPです。

参考文献

  1. ニュートン、アーロン。「Request.JSONP。」Clientcide。2009年12月7日。Web。2011年1月28日。
于 2011-01-28T17:50:08.067 に答える