ユースケース: ajax アップロード機能を使用した画像アップローダーを使用しています。ユーザーが Web サイトで作成したサブドメインに画像をアップロードしたいです。たとえば、ユーザーが Web サイトでドメインを作成するときに、画像をアップロードするための php スクリプトをコピーします。ユーザーが自分のドメインimage-cropping.php
に画像をアップロードするときに、このファイルにリクエストを送信したいと思います。
問題:
画像をアップロードしようとすると、Error: Permission denied to access property 'readyState'
.My Calling js file is on xyz.google.com
and the upload php script is on というメッセージが表示されabc.google.com
ます。
調査
いくつかのグーグル検索と調査を行った後、javascript ではクロス ドメインへのリクエストの送信が許可されず、これを処理するには http プロキシが必要であることがわかりました。私が試したコードは次のとおりです。他のドメインのファイルへのパス (パスは動的に構築されます)。
new AjaxUpload(btnUpload, {
action: 'includes/modules/domain_creation/proxy.php',
name: 'image',
onSubmit: function(file, ext){
if (! (ext && /^(jpg|png|jpeg|gif|JPG|JPEG|PNG|GIF)$/.test(ext))){
alert('Only JPG, PNG or GIF files are allowed');
return false;
}
$('#thumbImg').html('<img src="http://localhost/gobiggi_VS_2_2/images/appImages/imageLoader.png" />');
},
1)私は正しい方法でそれをやっていますか(初めてそれに取り組んでいます)?プロキシは実際に必要ですか? 2)エラーの許可をネゴシエートできるように、プロキシ
を設定する方法と場所を教えてください。3)どのようなセキュリティ問題が発生しますか(安全ですか?そうでない場合、代替手段はありますか)?ポインタや提案は私にとって役に立ちます。お時間をいただきありがとうございます。
更新:画像のアップロードに
このプロキシスクリプトを使用しています。コードの一部は
$domainUsername = $_SESSION['domainUsername'];
$domainNameWeb = $_SESSION['domainName'];
//$fileParameterProxy = $_FILES['image'];
//Destination URL: Where this proxy leads to the upload script
$destinationURL = 'http://www.'.$domainNameWeb.'/'.$domainUsername.'/upload.php';
//The only domain from which requests are authorized.
$RequestDomain = 'abc.net';
今は取得できませんError for permission
が、画像をサーバーに取得できません。実行しようとするとprint_r($_FILES)
、アップロード スクリプトに空の配列が表示されます。
私は何かが欠けていると思います!!誰かが修正してもらえますか?
お時間をいただきありがとうございます!