相关疑难解决方法(0)

使用curl从HTTP POST获取响应头

人们可以仅请求使用HTTP HEAD报头,作为选项-Icurl(1).

$ curl -I /
Run Code Online (Sandbox Code Playgroud)

冗长的HTML响应主体很难进入命令行,因此我只想获得标题作为我的POST请求的反馈.但是,HEAD和POST是两种不同的方法.

如何让curl仅显示POST请求的响应头?

post curl http-headers

518
推荐指数
8
解决办法
49万
查看次数

CSS @ font-face不支持Firefox,但使用Chrome和IE浏览器

以下代码适用于Google Chrome测试版以及IE 7.但是,Firefox似乎存在此问题.我怀疑它是如何包含我的CSS文件的问题,因为我知道Firefox对跨域导入不太友好.

但这只是静态HTML而且不存在跨域问题.

在我的landing-page.html上,我像这样进行CSS导入:

<link rel="stylesheet" href="../css/main.css" type="text/css" media="screen, projection" />
Run Code Online (Sandbox Code Playgroud)

在main.css中我有另外一个这样的导入:

@import url("reset.css");
@import url("style.css");
@import url("type.css");
Run Code Online (Sandbox Code Playgroud)

在type.css中我有以下声明:

@font-face {
    font-family: "DroidSerif Regular";
        src: url("font/droidserif-regular-webfont.eot");
        src: local("DroidSerif Regular"), 
                url("font/droidserif-regular-webfont.woff") format("woff"), 
                url("font/droidserif-regular-webfont.ttf")     format("truetype"), 
                url("font/droidserif-regular-webfont.svg#webfontpB9xBi8Q")     format("svg"); 
    font-weight: normal; font-style: normal; }
@font-face {
    font-family: "DroidSerif Bold";
    src: url("font/droidserif-bold-webfont.eot");
    src: local("DroidSerif Bold"), 
        url("font/droidserif-bold-webfont.woff") format("woff"), 
        url("font/droidserif-bold-webfont.ttf") format("truetype"), 
        url("font/droidserif-bold-webfont.svg#webfontpB9xBi8Q") format("svg");
    font-weight: normal; font-style: normal; }

body { font-family: "DroidSerif Regular", serif; }
h1 { font-weight: bold; font-family: "DroidSerif Bold", serif; }
Run Code Online (Sandbox Code Playgroud)

我在type.css的相同位置有一个名为"font"的目录.这个字体目录包含所有woff/ttf/svg文件等.

我很难过这个. …

css firefox font-face file-uri

193
推荐指数
3
解决办法
21万
查看次数

来自源的字体已被跨源资源共享策略阻止加载

我在几个Chrome浏览器上收到以下错误,但不是全部.目前还不确定问题是什么.

来自" https://ABCDEFG.cloudfront.net "的字体已被跨源资源共享策略阻止加载:请求的资源上没有"Access-Control-Allow-Origin"标头.因此,不允许来源" https://sub.domain.com "访问.

我在S3上有以下CORS配置

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedHeader>*</AllowedHeader>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

请求

Remote Address:1.2.3.4:443
Request URL:https://abcdefg.cloudfront.net/folder/path/icons-f10eba064933db447695cf85b06f7df3.woff
Request Method:GET
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:abcdefg.cloudfront.net
Origin:https://sub.domain.com
Pragma:no-cache
Referer:https://abcdefg.cloudfront.net/folder/path/icons-e283e9c896b17f5fb5717f7c9f6b05eb.css
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

来自Cloudfront/S3的所有其他请求都能正常工作,包括JS文件.

amazon-s3 amazon-web-services cors amazon-cloudfront

153
推荐指数
6
解决办法
24万
查看次数

正确的S3 + Cloudfront CORS配置?

我的应用程序将图像存储在S3上,然后通过Cloudfront代理它们.我很高兴使用新的S3 CORS支持,以便我可以使用HTML5 canvas方法(具有跨源策略),但似乎无法正确配置我的S3和Cloudfront.当我尝试将图像转换为canvas元素时,仍然遇到"Uncaught Error:SECURITY_ERR:DOM Exception 18".

这是我到目前为止所拥有的:

S3

<CORSConfiguration>
  <CORSRule>
    <AllowedOrigin>MY_WEBSITE_URL</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
  </CORSRule>
  <CORSRule>
    <AllowedOrigin>MY_CLOUDFRONT_URL</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
    </CORSRule>
  </CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

CloudFront的

起源

Origin Protocol Policy: Match Viewer

HTTP Port: 80

HTTPS Port: 443
Run Code Online (Sandbox Code Playgroud)

行为

Origin: MY_WEBSITE_URL

Object Caching: Use Origin Cache Headers

Forward Cookies: None

Forward Query Strings: Yes
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?

更新:刚尝试将标题更改为

<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
Run Code Online (Sandbox Code Playgroud)

基于这个问题的Amazon S3 CORS(跨域资源共享)和Firefox跨域字体加载

仍然没有去.

更新:更多信息请求

Request
URL:https://d1r5nr1emc2xy5.cloudfront.net/uploaded/BAhbBlsHOgZmSSImMjAxMi8wOS8xMC8xOC81NC80Mi85NC9ncmFzczMuanBnBjoGRVQ/32c0cee8
Request Method:GET
Status Code:200 OK (from cache)
Run Code Online (Sandbox Code Playgroud)

UPDATE

我想也许我的请求不正确,所以我尝试启用CORS

img.crossOrigin = '';
Run Code Online (Sandbox Code Playgroud)

但然后图像没有加载,我得到错误:跨源资源共享策略拒绝跨源图像加载.

amazon-s3 cors amazon-cloudfront

59
推荐指数
8
解决办法
4万
查看次数

最新的Chomium和Google Canary上的Amazon S3的CORS问题

我们的网站在使用最新版本的Chromium(版本33.0.1722.0 - 237596)和Chrome Canary在Amazon S3存储桶上加载CSS和JS资源时遇到问题.它适用于任何其他浏览器,包括当前的Chrome(31.0.1650.57).

错误是:

来自" https://mybucket.s3.amazonaws.com "的脚本已被跨源资源共享策略阻止加载:请求的资源上没有"Access-Control-Allow-Origin"标头.因此,不允许来源" https://app.example.com "访问.

我们在资源桶上的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>
        <MaxAgeSeconds>300000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

这是Chromium的错误吗?最新的CORS规格有什么变化吗?

google-chrome amazon-s3 amazon-web-services cors

16
推荐指数
4
解决办法
9805
查看次数

AWS:如何在S3 CORS配置中允许多个域?

我在许多依赖S3作为Cloudfront原点的网站上遇到了问题.但是,我在允许多个域(而不是*允许全局)方面存在问题.

我已经按照这里的文档(第一个配置).并在这里和那里找到了一些其他随机的SO或论坛答案(第二个配置)

任何帮助表示赞赏.

我已经设置了类似于以下两者的CORS规则:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>https://example.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>http://example.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>https://staging.example.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>http://example.dev</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>https://example.com</AllowedOrigin>
        <AllowedOrigin>http://example.com</AllowedOrigin>
        <AllowedOrigin>https://staging.example.com</AllowedOrigin>
        <AllowedOrigin>http://example.dev</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

我一直在所有网站上得到字体来源错误,除了 https://example.com:

来自" http:// CLOUDFRONTURL "的字体已被跨源资源共享策略阻止加载:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" http://example.dev "访问.

来自" http:// CLOUDFRONTURL "的字体已被跨源资源共享策略阻止加载:"Access-Control-Allow-Origin"标头的值" https://example.com "不相等到提供的原产地.因此,不允许来源" http://example.dev "访问.

amazon-s3 amazon-web-services cors

7
推荐指数
2
解决办法
5478
查看次数

Heroku + CDN Cloudfront +字体 - Firefox错误

最近,我们将资产转移到了CDN Cloudfront上.我们注意到Firefox上的表面被破坏了.经过几分钟的搜索,这是一个CORS的故事.我们允许使用Cloudfront字段.

application_controller:

after_filter :set_access_control_headers

def set_access_control_headers
  headers['Access-Control-Allow-Origin'] = CDN_CLOUDFRONT
end
Run Code Online (Sandbox Code Playgroud)

production.rb:

CDN_CLOUDFRONT = "http://xxx.cloudfront.net"
Run Code Online (Sandbox Code Playgroud)

这直到昨天都很顺利.经过几次搜索和反思,我还没有找到解决方案.

任何的想法?

firefox heroku cors amazon-cloudfront

5
推荐指数
1
解决办法
2920
查看次数

ie9上的AWS S3跨源请求失败

我正在尝试制作Web字体并将其部署在AWS S3上.

在除IE9之外的所有浏览器中都可以正常工作,它在尝试加载woff文件时表示跨源请求失败.

我已经在很多论坛上阅读了很多关于有问题的人,但是我找不到修复方法.

我认为这与S3上的CORS设置没有向IE9发送正确的数据或东西有关?

(适用于Firefox,Chrome,IE7,8等)

我看到解决问题的唯一建议是,启动EC2实例并为字体创建一个Web主机(完全矫枉过正!),另一个是将css文件命名为.php并在php中设置标头(但是这是愚蠢的).

任何人都知道如何(如果可能的话)解决这个问题?

谢谢

编辑

我的CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

amazon-s3 webfonts internet-explorer-9

5
推荐指数
2
解决办法
2636
查看次数

Firefox WebFont 403尽管有S3 CORS规则

我正在尝试从AWS S3托管和提供webfonts(特别是fontawesome)到heroku上的django项目,我很难克服可怕的firefox跨域字体加载问题.我已经尝试了所有已记录的,已接受的解决方案,但没有一个能为我工作.

我一直看到的推荐解决方案是在我的S3存储桶上编辑CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>https://myapp.herokuapp.com</AllowedOrigin>
        <AllowedOrigin>https://www.myapp.herokuapp.com</AllowedOrigin>
        <AllowedOrigin>https://myapp.com</AllowedOrigin>
        <AllowedOrigin>https://www.myapp.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
   </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这些设置的不同变体,firefox仍然从https://www.myapp.com禁止HTTP 403 :

Request URL: https://my_bucket.s3.amazonaws.com/css/fontawesome-webfont-webfont.ttf
Request Method: GET
Status Code: HTTP/1.1 403 Forbidden
Run Code Online (Sandbox Code Playgroud)

使用该HTTP请求,我在响应头中获得"Access-Control-Allow-Credentials:true".

是否有另一个CORS规则我需要声明firefox接受来自S3的字体?当我卷曲字体 - 真棒我没有/看到任何有用的故障排除:

> https://s3.amazonaws.com/my_bucket/font/fontawesome-webfont.eot
* About to connect() to s3.amazonaws.com port 443 (#0)
*   Trying xxx.xx.xx.xxxx... connected
* Connected to s3.amazonaws.com (xxx.xx.xx.xxx) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS …
Run Code Online (Sandbox Code Playgroud)

django firefox heroku amazon-s3

5
推荐指数
1
解决办法
786
查看次数

请求的资源上不存在“Access-Control-Allow-Origin”标头?

我的引导字形显示在其他浏览器上,但我在 google chrome 上收到此错误:

来自源“ http://d37p52igaahgm9.cloudfront.net ”的字体已被跨源资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://www.anthonygalli.com ”。

尽管尝试了以下方法,错误仍然存​​在:

应用程序控制器.rb

before_action :set_cors

def set_cors
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Request-Method'] = '*'
end
Run Code Online (Sandbox Code Playgroud)

应用程序.rb

config.middleware.insert_before 0, "Rack::Cors" do
  allow do
    origins '*'
    resource '*', :headers => :any, :methods => [:get, :post, :options]
  end
end

config.action_dispatch.default_headers = {
    'Access-Control-Allow-Origin' => '*',
    'Access-Control-Request-Method' => '*'
}
Run Code Online (Sandbox Code Playgroud)

CORS 配置编辑器

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>https://www.anthonygalli.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Content-*</AllowedHeader>
        <AllowedHeader>Host</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>https://anthonygalli.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Content-*</AllowedHeader>
        <AllowedHeader>Host</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

参考

google-chrome ruby-on-rails amazon-s3 cors amazon-cloudfront

5
推荐指数
1
解决办法
2万
查看次数

React/webpack - 如何在一台服务器上托管 React 应用程序并在另一台服务器上托管图像/字体?

出于商业原因,我必须在一个域上托管我的 React 应用程序,并提供来自另一个域(即 S3)的图像/字体。不确定如何配置应用程序来执行此操作?

例如,我想在以下位置托管我的 React 应用程序:http : //kamilski.com/#/

然后从以下位置提供我的静态资产(图像和字体):http : //camel.assets.s3.com/ ***

我不知道如何配置我的 create-react-app 或 Webpack 来做到这一点。我知道 PUBLIC_URL 可用,但这仍然迫使我在同一台服务器上运行 React 应用程序和资产。

reactjs webpack create-react-app

5
推荐指数
1
解决办法
299
查看次数

Amazon S3 CORS 适用于 HTTP,但不适用于 HTTPS

我可以让 Amazon S3 使用 http 传递 CORS 标头,但不能使用 https。我如何让它与两者一起工作?如果我们使用 Akamai 作为 CDN 会怎样?

这是我的存储桶配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <CORSRule>
        <AllowedOrigin>https://*</AllowedOrigin>
        <AllowedOrigin>http://*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule> 
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

这是我的测试。它们之间的唯一区别是一个使用http,另一个使用https。这两种资源在浏览器中都加载得很好,但我想在可能是 https 的 CORS 设置中使用它们。

pnore@mbp> curl -i -H "Origin: http://example.com"   -H "Access-Control-Request-Method: GET" -H 'Pragma: no-cache' --verbose http://my.custom.domain/path/to/file/in/bucket | head -n 15
* Adding handle: conn: 0x7fee83803a00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fee83803a00) send_pipe: 1, recv_pipe: 0
  % Total …
Run Code Online (Sandbox Code Playgroud)

amazon-s3

3
推荐指数
1
解决办法
3053
查看次数