0

私が開発しているツールは、パラメーターとして URL を取り、その URL からソース コードを取得して分析します。このツールは私たちのドメインでホストされ、同じ内部ネットワーク ドメインにあるサイトの Web ページを分析する機能が必要です。ソースコードを取得するために、次の Jquery.ajax 呼び出しを行います。

$.ajax({
    url: siteToanalyze,
    type : 'GET',
    dataType : 'html',
    success: function (result) {
        content = result;
    analyzeCode(content, siteToanalyze);
    },
    error: function (jqxhr, status, errorThrown) {
    alert("Failure, Unable to recieve content");
    }
 });

外部の Web サイトでも YQL を使用してコードを取得できます。同じオリジンから Web ページのソース コードを取得できます。しかし、YQL からアクセスできない同じ内部ネットワーク内の Web ページについてはどうでしょうか。

たとえば、この js コードが 172.20.1.160:5000 から提供され、同じネットワーク内の 172.20.5.68:5000 にサイトを提供するとします。Web コンソールに URL の HTTP 200 ステータス リクエストが表示されますが、エラー関数が実行されます。なぜそれが起こるのですか?または、私が言及した方法以外に Web ページのソース コードを取得する方法はありますか?

4

1 に答える 1

0

この問題は、Same origin policyが原因でした。私がアクセスしたかったコンテンツは、上記のコードとは別の起源からのものです。CORSを使用して問題を解決しました

于 2013-07-17T05:45:50.217 に答える