使用案例:我的工作,它采用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