Я получаю эту ошибку при попытке загрузить файл на удаленный сервер с использованием jquery-файла. Blueimp https://github.com/blueimp/jQuery-File-Upload
Доступ к XMLHttpRequest по адресу https://stream.example.com/media/add_media' от источника 'https://stage.example.com' была заблокирована политикой CORS: Ответ на предполётный запрос не проходит проверку контроля доступа: Заголовок «Access-Control-Allow-Origin» содержит несколько значений «*, *», но разрешено только одно.
localhost
var sendData= true;
$('.media_file').fileupload({
dataType: 'json',
singleFileUploads:true,
maxChunkSize: 500000,
autoUpload:false,
replaceFileInput:false,
add: function (e, data) {
$(".upload-btn").on('click', function () {
//on click of this button data submitted
data.url = 'https://streaming.example.com/media/add_media';
data.submit();
});
},
done: function (e, data) {
//data submitted return filename and remove files input
$('.media_file').remove();
$.each(data.result.files, function (index, file) {
$("input[name='filename']").val(file.name);
});
$("#form1").submit();
}
});
удаленный сервер crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*.example.com" secure="false"/>
<allow-access-from domain="www.example.com" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
add_media контроллер (удаленный сервер)
class Media extends CI_Controller {
function __construct() {
parent::__construct();
$arrmodel=array('media_model');
$this->load->model($arrmodel);
}
function add_media() {
$filename = explode(".",$_FILES['files']['name']);
$extension = end($filename);
array_pop($filename);
$filename = implode(".",$filename);
$_FILES['files']['name'] = uniqid().".".$extension;
$options = array('upload_dir' => FCPATH.'streams/videos/' , 'upload_url' => FCPATH.'streams/videos/');
$this->load->library("UploadHandler",$options);
return $_FILES['files']['name'];
}
}