我想在我的Rackspace cloodfiles容器中启用CORS,所以在阅读了文档之后,我看到我必须设置一些容器元数据(我使用Python和Pyrax):
from pyrax import cloudfiles
cloudfiles.set_container_metadata(container_name, {
'X-Container-Meta-Access-Control-Allow-Origin': 'localhost:8000',
'X-Container-Meta-Access-Control-Expose-Headers': 'Access-Control-Allow-Origin',
'X-Container-Meta-Access-Control-Max-Age': '10',
})
print cloudfiles.get_container_metadata(container_name)
我得到的结果是:
^{pr2}$但是浏览器在OPTIONS
预飞请求中没有得到Access-Control-Allow-Origin
,因此它取消了AJAX调用:
HTTP/1.1 401 Unauthorized
Content-Length: 131
Content-Type: text/html; charset=UTF-8
Allow: HEAD, GET, PUT, POST, COPY, OPTIONS, DELETE
X-Trans-Id: txXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Date: Wed, 13 Nov 2013 20:07:34 GMT
Connection: keep-alive
少了什么?在
谢谢!在
Rackspace有关于如何为容器here启用CORS的文档。示例7.11是一个CORS测试页,它允许您在尝试文件上载之外测试配置。在
testcors页面-接受一个令牌和一个指向一个对象或容器的URL,让我们尝试对它调用一个HTTP方法。在
注意:我删除了“DELETE”方法,因为它可能会产生不希望的结果(例如删除容器/对象)
为了在pyrax或任何其他SDK之外设置这些值,我使用了以下代码:
https://gist.github.com/chrisrasco/7455804
记住在适当的位置设置用户名、apikey和容器的路径。在
相关问题 更多 >
编程相关推荐