別のサーバーからデータを取得する必要があるという要件があります。サーバーはJSONのみをサポートし、JSONPはサポートしません。JSONPを使用してサーバーからデータを取得するにはどうすればよいですか?
私はjqueryでそれをやっています。
他に解決策はありますか?
親切に私を助けてください。
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 のようなコールバック (または同意) は必要ありません。