使用案例:我的工作,它採用ajax upload function.I要上傳圖片到一個子用戶創建的website.For例如圖片上傳,當用戶在網站上創建一個域名時,我複製了一個用於將圖像上傳到新域名的php腳本,即image-cropping.php
。我想在用戶將任何圖像上傳到他的域名時向該文件發送請求。創建一個HTTP代理服務器使用「IFRAME」上傳圖片
問題:
當我嘗試上傳的圖像,我得到Error: Permission denied to access property 'readyState'
。我呼籲JS文件是xyz.google.com
和上傳PHP腳本是abc.google.com
。
研究
做一些谷歌上搜索和研究,我學會後的JavaScript將不允許發送請求跨域,它需要一個HTTP代理服務器來處理this.Here是代碼我有tried.The腳本運行ajax上傳器。在行動中,我有其他域上的文件路徑(路徑是動態構建的)。
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)它打開了什麼安全問題(安全嗎?如果不是什麼替代方案)?任何指針或建議對我都有幫助。
謝謝你的時間。
更新:
我使用這個代理script上傳的代碼image.Part是
$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)
時,我的上傳腳本中出現空白數組。
我相信我錯過了一些東西!!有人能改正嗎?
謝謝你的時間!
謝謝你的投入,但你能幫助我的要求會如何呢?另外,我學會了http請求不被安全使用'https' instead.Can你扔一些輕就可以了嗎? – KillABug 2013-02-12 14:34:43
你使用哪種代理?它存儲在哪裏? http未加密,https是。但是,如果你需要它取決於你發送的數據。它是否敏感? – 2013-02-12 14:40:07
目前我沒有使用任何代理。實際上第一次使用代理! :PI試圖發送一個普通的'http'請求如在上面的問題,並得到了錯誤mentioned.The功能特別需要**上傳圖片**存儲在用戶域(用戶將創建從網站他自己的域)。該隨着用戶數據被嵌入其中,信息有些重要。 – KillABug 2013-02-12 14:44:47