3

私のアプリケーションでは、XSLT を使用して XML ファイルをレンダリングしています。

クライアントが xsl ファイルを持っている場合、これは正常に機能します。

<?xml-stylesheet type="text/xsl" href="..\XSL\test.xsl"?>

しかし、次のような XML ファイルでサーバー上の xsl ファイルを使用しようとすると:

<?xml-stylesheet type="text/xsl" href="http://www.mysite.com/xsl/test.xsl"?>

これは機能していません。セキュリティ上の制限のようですが、リモート サーバー上のリモート XSL を使用してローカル XML ファイルをレンダリングする方法はありますか?

4

2 に答える 2

1

表示されている「セキュリティ制限」は、同一オリジン ポリシーと呼ばれます。つまり、XSLT スタイルシートは、XML のロード元と同じサーバーから取得する必要があります。

XML が PHP などのスクリプト機能を備えたサーバーから取得されている場合は、プロキシ スクリプトを作成することでこれを回避できます。このスクリプトは、基本的にリモート XSL ファイルをロードし、ローカル ファイルのように見せます。

<?php
header('Content-type: text/xsl');
echo file_get_contents('http://www.mysite.com/xsl/test.xsl');
?>
于 2013-03-21T10:46:39.857 に答える
1

IE11 では、まだ回避策があります。[インターネット オプション] -> [セキュリティ] -> [ローカル インターネット] -> [カスタム レベル] -> [その他] -> [ドメイン間のデータ ソースへのアクセス] に移動し、[有効] または [プロンプト] に設定する必要があります (最後のオプションをお勧めします。これをある程度制御します)。これにより、リモート xsl によるローカル xml のロード/処理が可能になります。

于 2013-12-20T15:35:58.137 に答える