1

別のサーバーからデータを取得する必要があるという要件があります。サーバーはJSONのみをサポートし、JSONPはサポートしません。JSONPを使用してサーバーからデータを取得するにはどうすればよいですか?

私はjqueryでそれをやっています。

他に解決策はありますか?

親切に私を助けてください。

4

1 に答える 1

1

JSONP が存在する理由は、Javascript のクロスドメイン問題を回避するためです。これは基本的に、ブラウザの JavaScript が、Web アプリケーションと同じドメインにない Web サービスと通信することを許可してはならないことを意味します。

JSONP では、ブラウザとサーバーが「合意」しているため、このクロスドメイン統合が可能になります。コールバックを与えると、そのコールバックにラップされた結果が得られます。javascript 経由で呼び出されることが想定されているため、関連するセキュリティ リスクは少なくなります。

例:

You call http://www.abccorp.com/index.php?callback=somevalue

JSONP がなければ、次のように返されます: { some: 'value' }

JSONP の場合:

somevalue({ some: 'value' });

サーバーがこのコールバックをサポートしていない場合、それは不可能です (javascript を使用するだけでは)。

この呼び出しを容易にするサーバー側プログラミング言語を使用することをお勧めします。

たとえば、index.php という PHP ファイルがあるとします。JavaScript は、AJAX JSON リクエストを使用してこのファイルを呼び出します。次に、必要なサーバーを呼び出し、結果を取得して、JavaScript に転送します。JavaScript を使用していないため、このサーバー側プログラミングには JavaScript のようなコールバック (または同意) は必要ありません。

于 2013-01-29T06:37:11.477 に答える