3

ホストをセットアップしたくないので、一部のビジネスマンがローカルファイルシステムで実行できる小さなツールをまとめています。

基本的には、HTML + Javascript (jQuery を使用) だけで、サードパーティから REST を使用していくつかのレポートを取得できます。

問題は、FF3 と IE が ajax 呼び出しを許可しないことです。

Access to restricted URI denied" code: "1012

明らかに XSS の問題です...どうすれば回避できますか? 返されるデータは XML 形式です。

私はこのようにしようとしていました:

$.get(productUrl, function (data){
    alert (data);
});

編集:明確にするために...私はこれのために内部ホストを設定していません(多くの赤いテープへの道)、データが取得されているため、これを外部でホストすることはできません。

編集 #2 : 少しテストしたところ、IFRAME を使用して要求を行うことができることがわかりました。非表示の IFRAME を使用することの欠点があるかどうかは誰にもわかりませんか?

4

3 に答える 3

2

同様の状況で、私の解決策は、IE が認識する特別な HTML コメントである Mark Of The Web を使用することでした。ページを別のセキュリティ ゾーンに配置します。

参考:MSDN

于 2008-10-03T00:06:05.447 に答える
-1

データを提供するサーバーを制御していますか?もしそうなら、あなたはコールバックを設定することができます。基本的な考え方は、受信データ(この場合はXML文字列)を処理する関数をスクリプトに含めることです。次に、サーバーは、引数として文字列を使用して、コールバック関数のJavaScriptスニペットを使用してリクエストに応答します。また、AJAXを使用する代わりに、ページに新しいスクリプトタグを追加します。これがJSONPの基礎です。こんな感じです。

ローカルページ。

<script>
    function callback(str) {
        alert(str);
    }
    function makeRequest(param) {
        var s = document.createElement('script');
        s.src = 'http://serveranywhere/script.bla?' + params;
        document.getElementsByTagName[0].appendChild(s);
    }
</script>

リモートサーバーが戻る

callback('<xml><that><does><something></something></does></that></xml>');

これで、スクリプトがページに追加されると、指定した文字列に対して関数コールバックが実行されます。そして、jQuery呼び出しは、$。ajax呼び出しでJSONPを使用して、これらすべてを実行します。お役に立てれば。

于 2008-10-03T12:02:07.247 に答える
-1

Python がインストールされている場合、ファイルを提供する Web サーバーは次のように単純になります。

python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”

編集: 元のポスターはこのアプローチを使用できませんが、一般的に、これはこの問題を抱えた将来のユーザーのためにこの特定の問題を解決する方法だと思います.

于 2008-10-02T18:50:13.333 に答える