Chrome Firefox上的CORS和对chrom专用本地网络访问的潜在帮助

lp0sw83n  于 2022-12-16  发布在  Go
关注(0)|答案(1)|浏览(114)

我目前正在使用FLASK开发人员HTTP服务器,并且正在尝试构建一个本地服务(在localhost上运行),为远程可视化网站提供文件。
下面是python端的代码

@app.route('/task/<path:path>', methods=['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'])
def static_file1(path):
    p = "./task/" + path
    return flask.send_file(p, conditional=True)

对于safari来说,它就像一个魅力。x1c 0d1x正如这个截图所示,flask开发http服务器可以部分地服务文件。
然而,它对firefox的一个请求不起作用,但对另一个请求不起作用。

这里是第一个失败的请求的头

成功的请求头

所以我相信CORS头(访问控制允许起源)设置正确,否则第二个请求将失败。
那我哪里做错了?
第二部分:
它也不工作在Chrome浏览器,两个请求失败,但我发现下面的文章解释新的安全功能:
http://developer.chrome.com/blog/专用网络访问预检/#:~:text= %23%20什么是专用网络访问,以%20发出专用网络请求。
但即使“Access-Control-Allow-Private-Network”设置为“true”(见上面的截图),这两个请求在chrome中仍然失败。

Access to XMLHttpRequest at 'http://localhost:10981/task/a5c8616777d000499ff0cd5dbb02c957/datahub.json' from origin 'https://somepublic.website' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `local`.

任何建议都会很有帮助!谢谢!
更新1:在flask端启用ad-hoc SSL上下文(未签名证书),在localhost和“the public website”上使用https,并将chrome中的“#allow-unsecure-localhost”标志改为true后,它现在可以在chrome中工作了,但在firefox中仍然不行。

oxcyiej7

oxcyiej71#

如果您选中the specification,您将看到它是一份“Draft Community Group Report”(社区组报告草案),并且
本规范由Web平台孵化器社区组发布。它不是W3C标准,也不在W3C标准轨道上。
贡献列表完全由为谷歌工作的人组成。
我在Firefox's bug tracker中找不到任何关于它的内容。
看起来这是一个高度实验性的规范,Firefox简单没有实现。
似乎没有任何方法可以说服Firefox提供从安全的公共源到不安全的私有源的访问。

相关问题