Проблема CORS с Rackspace CloudFiles

У меня есть приложение Angular 1.x, использующее популярный ng-file-upload, чтобы сделать запрос в библиотеку Rackspace OpenCloud для загрузки файлов в CDN.

Вкратце приведенный ниже сценарий загружает файл, отправляет его в серверную часть приложения и, в свою очередь, отправляет запрос в Rackspace Container и возвращает общедоступный URL-адрес. Все это отлично работает в Postman без проблем - когда я внедряю это в свое приложение Angular, у меня возникают некоторые проблемы с CORS (см. код загрузки ниже) - внешний интерфейс Angular отправляет запрос в наше внутреннее приложение, которое, в свою очередь, отправляет запрос в OpenCloud для загрузить файл в CDN Rackspace и вернуть общедоступный URL-адрес.

// внешнее приложение Angular

        Upload.upload({
            url : 'https://asite.com/users/request',
            data : {
                __token : $localStorage.token.value,
                fileToUpload : file
            }
        // additional code below not shown for clarity

В журнале консоли я вижу следующее: (я изменил фактический URL-адрес ниже в целях безопасности): -

Failed to load https://xxxxxxxxxxxxxx-2426685a61633353dfd5b28cdbf2b449.ssl.cf3.rackcdn.com/5a7d6de352a949.48129019.pdf: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к происхождению 'http://domain.local' запрещен. Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение «no-cors», чтобы получить ресурс с отключенным CORS.

Как предотвратить эту ошибку CORS, чтобы она загружала файл из CDN?


person Zabs    schedule 09.02.2018    source источник


Ответы (1)


исправлено - проблема была на самом деле в бэкенде PHP (на случай, если это поможет кому-то еще)

$object = $container->DataObject();
$object->Create(array(
        'name' => $filename, 
        'content_type' => $mime, 
        'extra_headers' => array('Access-Control-Allow-Origin' => '*'
)), $file);

Мне нужно было добавить это в дополнительный массив заголовков при создании файла с помощью OpenCloud SDK.

person Zabs    schedule 09.02.2018