1

我已经在一个站点上设置了 FineUploader,并且我包含了一个复选框,允许用户根据需要使用 HTTPS 上传文件。

不幸的是,如果用户使用 http 访问该站点,然后尝试使用 ssl 它会出错,我认为是因为 CORS 问题。我认为这是一个 CORS 问题,因为如果我使用 https 访问该站点并尝试使用 ssl 上传它可以正常工作。

我找到了一些关于启用 CORS 支持的文档,但似乎您要么需要这样做,要么只发出 CORS 请求,或者不发出任何请求。在我的情况下,有时会有 CORS 请求而不是其他请求。

有谁知道解决这个问题的好方法?单击复选框时,我是否应该使用 HTTPS 重新加载整个页面?

4

2 回答 2

4

如果您要直接上传到 Amazon s3 ,请参阅官方文档中的注释,“SSL 也受支持,在这种情况下,您的endpoint地址必须以https://开头,在您的 uploaderpage.html 文件中的脚本中。

request: {
    endpoint: 'https://mybucket.s3.amazonaws.com', 
                // Note that "https://" added before bucket name, to work over https                     
    accessKey: 'AKIAblablabla' // as per the specific IAM account
},
  • 如果 uploaderpage.html 通过 http 提供服务,这仍然有效(或者如果您需要灵活的端点,您可以动态填充端点值)。
  • 这将帮助您避免通过 https 上传时出现混合内容错误,“请求不安全的 XMLHttpRequest 端点”,如果页面是 https 但您请求 http 端点,则会发生这种情况。
于 2015-02-22T11:00:59.150 回答
0

只是重申我在评论中提到的内容(这样其他人可以很容易地看到这一点)......

也许您可以在用户选择 HTTP 或 HTTPS 作为上传协议后实例化 Fine Uploader。如果必须,您可以通过选项的expected属性启用 CORS 功能cors。请记住,在处理 CORS 请求时,您必须在服务器端处理一些细节,尤其是在涉及 IE9 或更早版本的情况下。有关更多详细信息, 请参阅我关于 CORS 功能的博客文章。

于 2013-04-04T16:58:18.427 回答