AJAX を使用して外部ドメインからデータを取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-28 05:10:11
オリジナル
754 人が閲覧しました

How Can I Use AJAX to Retrieve Data from External Domains?

クロスドメイン AJAX リクエスト: 回避策の検討

AJAX は Web 開発に革命をもたらし、動的で対話型のアプリケーションを可能にしました。ただし、クロスドメイン HTTP リクエストを実行しようとすると、ブラウザーのセキュリティ対策が原因で一般的な障害が発生します。この記事では、この制限を克服し、外部ドメインからデータを取得するための代替ソリューションを検討します。

問題の説明

この質問は、次のような外部ドメインへの AJAX 呼び出しを直接実行できないことを強調しています。 「http://www.google.com」にアクセスし、自分の Web サイトで結果を取得します。 「jsonp」dataType の使用が解決策のように見えるかもしれませんが、受信したデータに JSON 形式がないため、構文エラーが発生します。

解決策: プロキシ サーバーの統合

推奨解決策には、サーバー側の言語をプロキシとして利用することが含まれます。このプロキシは仲介者として機能し、外部ドメインからデータを取得し、適切な形式でクライアント Web サイトに返します。 jQuery を使用した実装例を次に示します。

$.ajax({
    url: 'proxy.php',
    type: 'POST',
    data: {
        address: 'http://www.google.com'
    },
    success: function(response) {
        // response now contains full HTML of google.com
    }
});
ログイン後にコピー

データを取得して返すための対応する PHP (proxy.php):

echo file_get_contents($_POST['address']);
ログイン後にコピー

iFrame に関する考慮事項

iFrame も同じクロスドメイン リクエスト ポリシーに従います。したがって、別のドメインから iFrame を埋め込むと、データを直接取得したり操作したりすることはできません。

結論

プロキシ サーバーを利用することで、相互接続をバイパスすることが可能です。 -ドメインの制限と、AJAX を使用した外部宛先からのデータの取得。この方法は簡単で効果的なソリューションを提供し、開発者が複数のドメインのコンテンツとシームレスに対話するアプリケーションを構築できるようにします。

以上がAJAX を使用して外部ドメインからデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート