У меня есть приложение 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?