Javascript 将XHR从Chrome扩展发送到PHP页面时出错:跨源请求仅支持HTTP

Javascript 将XHR从Chrome扩展发送到PHP页面时出错:跨源请求仅支持HTTP,javascript,ajax,google-chrome-extension,xmlhttprequest,Javascript,Ajax,Google Chrome Extension,Xmlhttprequest,我想将一个XHR(使用GET方法)从Chrome扩展发送到PHP页面。但是当我尝试运行代码时,我得到一个错误: "Cross origin requests are only supported for HTTP" "XMLHttpRequest Exception 101" 当我在浏览器中直接调用PHP页面时,该页面加载良好,因此无法定位该文件不会导致错误。 由于这些错误,我无法将数据从扩展发送到PHP页面以存储在数据库中。我已在扩展的manifest.json(在权限下)中

我想将一个XHR(使用GET方法)从Chrome扩展发送到PHP页面。但是当我尝试运行代码时,我得到一个错误:

    "Cross origin requests are only supported for HTTP"
    "XMLHttpRequest Exception 101"
当我在浏览器中直接调用PHP页面时,该页面加载良好,因此无法定位该文件不会导致错误。 由于这些错误,我无法将数据从扩展发送到PHP页面以存储在数据库中。我已在扩展的manifest.json(在权限下)中包含https://*/但它仍然不起作用

请让我知道如何克服此错误并成功发送请求


PS:运行扩展并发送XHR的页面是HTTPS页面,而PHP是HTTP页面。这可能是问题的原因。如果是,如何克服这一问题。

您不能。XHR受以下限制:


不过,您可以使用。

我假设您是在内容脚本中执行此操作的,如果是这样,则您不能。它将被视为同一原产地政策。如果您想在Chrome扩展中使用XHR请求,请将其放在扩展页面(背景页面)中

当您这样做时,请确保在权限下添加正确的匹配模式:


例如,
https://*/
应该是
https://*/*
,并且您的XHR应该位于一个您的内容脚本通过它进行通信的位置。

我知道它有点旧,但只是为了以防万一有人看到此页面。这是一个复制品


如果声明了适当的权限,您可以从内容脚本中创建跨源xhr。

您在后台页面的何处运行此代码?嗨,Martin,谢谢您的回复。我认为扩展可以发送不同于网页的跨源XHR。资料来源: