Javascript 如何从Chrome扩展名下载公共Google驱动器文件?

Javascript 如何从Chrome扩展名下载公共Google驱动器文件?,javascript,google-chrome,google-chrome-extension,xmlhttprequest,permission-denied,Javascript,Google Chrome,Google Chrome Extension,Xmlhttprequest,Permission Denied,我有一个像这样的公共Google驱动器文件: 我想从Chrome扩展名下载该文件 我已将这些URL添加到扩展清单中的“permissions”元素中(尝试下载文件时有一些重定向,我尝试将它们全部添加):“https://*.docs.googleusercontent.com/,,,,,,,,” 当我尝试下载文件时,Chrome返回以下错误: XMLHttpRequest cannot load https://docs.google.com/nonceSigner?nonce=s35adai1

我有一个像这样的公共Google驱动器文件:

我想从Chrome扩展名下载该文件

我已将这些URL添加到扩展清单中的“permissions”元素中(尝试下载文件时有一些重定向,我尝试将它们全部添加):“https://*.docs.googleusercontent.com/,,,,,,,,”

当我尝试下载文件时,Chrome返回以下错误:

XMLHttpRequest cannot load https://docs.google.com/nonceSigner?nonce=s35adai1lp052&continue=https://do…Ddownload%26h%3D16653014193614665626&hash=inkfclb76vcru6uuoqkfp274hk5joqk9. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 
看来我已经允许下载的网址有问题

如果我添加
权限,则下载成功


知道我需要添加什么权限吗?提前感谢。

使用例如
wget
并查看报告的重定向,您可以看到最后一个主机类似于:

doc-0c-80-docs.googleusercontent.com

第一部分可能是可变的,URL的主机部分中的通配符只能匹配主机名的整个部分。因此,您应该在匹配模式中添加以下内容:


*.googleusercontent.com

使用例如
wget
并查看报告的重定向,您可以看到最后一个主机类似于:

doc-0c-80-docs.googleusercontent.com

第一部分可能是可变的,URL的主机部分中的通配符只能匹配主机名的整个部分。因此,您应该在匹配模式中添加以下内容:


*.googleusercontent.com

访问驱动器文件至少需要以下最低要求:

  • *://drive.google.com/*
  • *:/*。googleusercontent.com/*

访问驱动器文件至少需要以下最低要求:

  • *://drive.google.com/*
  • *:/*。googleusercontent.com/*

您可能需要在URL末尾添加一个
*
(例如
https://www.google.com/*
)。您当前的权限可能只适用于那些确切的URL,而不适用于那些域上的任何资源。抱歉,这也不起作用,请尝试一下。我认为Chrome只是假设每个以请求的任务开头的url都是允许的。谢谢你的建议!另一个可能的想法是:该URL可以透明地执行
301
302
重定向到不允许的来源<代码>允许这种假设的重定向(不管是什么),但您的列表不允许。在Dev Tools中检查您的网络日志,看看URL是否(以及在哪里)重定向。是的,这就是我添加
https://www.google.com/
permission。这是Chrome返回错误的重定向。它重定向到此处:
https://www.google.com/accounts/ServiceLogin?REST_OF_URL_HERE
再次感谢。请尝试
*.googleusercontent.com
而不是
*.docs.googleusercontent.com
。您可能需要在URL末尾添加一个
*
(例如,
https://www.google.com/*
)。您当前的权限可能只适用于那些确切的URL,而不适用于那些域上的任何资源。抱歉,这也不起作用,请尝试一下。我认为Chrome只是假设每个以请求的任务开头的url都是允许的。谢谢你的建议!另一个可能的想法是:该URL可以透明地执行
301
302
重定向到不允许的来源<代码>允许这种假设的重定向(不管是什么),但您的列表不允许。在Dev Tools中检查您的网络日志,看看URL是否(以及在哪里)重定向。是的,这就是我添加
https://www.google.com/
permission。这是Chrome返回错误的重定向。它重定向到此处:
https://www.google.com/accounts/ServiceLogin?REST_OF_URL_HERE
再次感谢。请尝试
*.googleusercontent.com
而不是
*.docs.googleusercontent.com