Rackspace CloudFiles 的 CORS 问题
CORS issue with Rackspace CloudFiles
我有一个 Angular 1.x 应用程序使用流行的 ng-file-upload 向 Rackspace OpenCloud 库发出请求以将文件上传到 CDN。
简而言之,下面的脚本 - 上传一个文件,将其发送到应用程序的后端,然后向 Rackspace 容器发送一个请求,然后 returns public URL.这在 Postman 中一切正常,没有问题 - 当我将它实现到我的 Angular 应用程序时,我遇到了一些 CORS 问题(请参阅下面的上传代码) - 前端 Angular 向我们的后端应用程序发送请求,其中转而向 OpenCloud 发送请求以将文件上传到 Rackspace CDN 和 returns public 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):-
加载失败https://xxxxxxxxxxxxxx-2426685a61633353dfd5b28cdbf2b449.ssl.cf3.rackcdn.com/5a7d6de352a949.48129019.pdf: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://domain.local'因此不允许访问。如果不透明的响应满足您的需求,请将请求的模式设置为 'no-cors' 以在禁用 CORS 的情况下获取资源。
如何防止此 CORS 错误以便它从 CDN 加载文件?
已修复 - 问题实际上出在 PHP 后端(以防它帮助其他人)
$object = $container->DataObject();
$object->Create(array(
'name' => $filename,
'content_type' => $mime,
'extra_headers' => array('Access-Control-Allow-Origin' => '*'
)), $file);
我需要在使用 OpenCloud SDK 创建文件时将其添加到额外的 headers 数组中
我有一个 Angular 1.x 应用程序使用流行的 ng-file-upload 向 Rackspace OpenCloud 库发出请求以将文件上传到 CDN。
简而言之,下面的脚本 - 上传一个文件,将其发送到应用程序的后端,然后向 Rackspace 容器发送一个请求,然后 returns public URL.这在 Postman 中一切正常,没有问题 - 当我将它实现到我的 Angular 应用程序时,我遇到了一些 CORS 问题(请参阅下面的上传代码) - 前端 Angular 向我们的后端应用程序发送请求,其中转而向 OpenCloud 发送请求以将文件上传到 Rackspace CDN 和 returns public 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):-
加载失败https://xxxxxxxxxxxxxx-2426685a61633353dfd5b28cdbf2b449.ssl.cf3.rackcdn.com/5a7d6de352a949.48129019.pdf: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://domain.local'因此不允许访问。如果不透明的响应满足您的需求,请将请求的模式设置为 'no-cors' 以在禁用 CORS 的情况下获取资源。
如何防止此 CORS 错误以便它从 CDN 加载文件?
已修复 - 问题实际上出在 PHP 后端(以防它帮助其他人)
$object = $container->DataObject();
$object->Create(array(
'name' => $filename,
'content_type' => $mime,
'extra_headers' => array('Access-Control-Allow-Origin' => '*'
)), $file);
我需要在使用 OpenCloud SDK 创建文件时将其添加到额外的 headers 数组中