最新のブラウザでバイナリ Ajaxを使用して、リソースをファイルとして取得できます。
var oReq = new XMLHttpRequest();
oReq.open("GET", fileURLGivenByUser, true);
oReq.responseType = "blob";
oReq.onload = function(oEvent) {
var oFile = oReq.response;
processTheFileSomehow(oFile);
};
oReq.send();
これは、次のいずれかである限り機能します。
fileURLGivenByUser
スクリプトを実行しているページと同じドメインにある (たとえば、クロッピング スクリプトが実行されfoo.com
ていて、画像リンクもオンになっているfoo.com
)、または
ターゲット画像リソースは、Access-Control-Allow-Origin: *
CORS 応答ヘッダーと共に提供されます (たとえば、クロッピング スクリプトは で実行されfoo.com
、画像リンクは で実行されbar.com
、bar.com
許容可能な CORS ヘッダーを含むファイルが提供されます)。
したがって、ユーザーがlocalhost
リンクを使用するには、ユーザーがローカル Web サーバーを実行している必要があり、その Web サーバーはAccess-Control-Allow-Origin: *
or Access-Control-Allow-Origin: whateverdomainyouuse.com
(つまり、クロッピング スクリプトが実行されるドメイン) で画像を提供する必要があります。
CORS の制限が厳しすぎる場合 (そうである可能性が高い)、ホストでサーバー側のプロキシを使用できます。たとえば、あなたが要求するとき
http://mydomain.com/proxy/http://targetdomain.com/image.png
サーバーは、の内容でリクエストとレスポンスを行います
http://targetdomain.com/image.png