我很难强制S3在它从一个bucket返回的所有对象上设置CORS头,尽管启用了CORS,但由于客户端S3上传正在工作,返回的对象没有CORS头!
我启用的策略是:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
对象URL示例https://s3.amazonaws.com/captionable/meme/test
有人知道怎么了吗?
Chrome有一个他们无法修复的惊人缺陷:
如果您足够幸运能够控制生成标签的代码,您可以将Crossorive="匿名"
添加到标签中。
像
顺便说一句,Safari也有这个问题。
我还遇到了一个<代码>
我遇到了这个SO答案并解决了它。我将S3配置中的AlloweOrigin
更改为:
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
现在S3用访问头进行响应。耶!
首先,确保每个请求都有一个原始头。如果没有发送源报头,S3将不会发送访问控制报头,因为S3认为这些报头不相关(通常是不相关的)。当通过XMLHTTPRequest执行跨源HTTP请求时,浏览器(CORS机制的意思是)将自动发送源
头。
如果加载带有img的图像,则需要添加属性。请参阅跨原点属性的MDN文档。这将导致浏览器像处理XMLHTTPRequest一样发送原始请求头。
根据山姆·塞利科夫的回答,你可能需要改变
<AllowedOrigin>http://*</AllowedOrigin>
到
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
我还没有测试过这个。
根据Paul Draper对这个答案的评论:小心缓存问题。浏览器可能使用不包括适当的访问控制响应头的缓存响应。在开发过程中,您可以清除缓存。在生产中,如果资源以前是以静态方式使用的,则必须切换到该资源的新URL。
Access-Control-Allow-Origin响应 header 指示是否该响应可以与具有给定资源共享原点。 Header type Response header Forbidden header name no 语法 Access-Control-Allow-Origin: *Access-Control-Allow-Origin: <origin> 指令 * 对于没有凭据的请求,服务
Response.AddHeader(“Access-Control-Allow-Origin”,“*”)是如何实现的;行设置多个标题时,包括,但没有当我删除它?
null 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。Access-Control-Allow-Origin不允许Origin 。 如何解决此问题?
我从ASP.NET表单中调用这个函数,在调用Ajax时在firebug控制台中得到以下错误。 跨源请求被阻止:同一源策略不允许读取http://anotherdomain/test.json上的远程资源。(原因:CORS标头“Access-Control-Allow-Origin”丢失)。 我做了其他的方法,但仍然找不到解决办法。 注意:我没有服务器权限进行服务器端(API/URL)更改。
问题内容: 我是Ajax的新手,只是受过此跨域调用的任务。我们的网页上有一个文本框,用户可用来执行公司名称搜索。通过单击文本框旁边的按钮,将请求Ajax调用。不幸的是,Web服务位于单独的域中,因此自然会引起问题。 以下是我使这项工作的最佳尝试。我还要注意,此调用的目的是以XML格式返回结果,该结果将在请求的一部分中进行解析。 这又是错误消息: 对于解决方法,我不知所措,将不胜感激任何想法。 问题
我正在使用React制作简单的应用程序,将ajax请求发送到使用Symfony制作的API。我正在开发反应应用程序和Symfony api。我将请求从localhost:3000发送到localhost:8000。这是我发送的ajax请求 这是Symmfony应用程序,负责处理请求 我到目前为止在开始,你可以看到我正在创建没有密码,安全或任何东西的新用户。我只想让它工作,并能够发送请求从应用程序到