我想从Chrome扩展程序向PHP页面发送XHR(使用GET方法)。但是当我尝试运行代码时,出现错误:
"Cross origin requests are only supported for HTTP"
"XMLHttpRequest Exception 101"
当我直接在浏览器中调用它时,PHP页面加载正常,因此无法找到该文件不会导致错误。 由于这些错误,我无法将数据从扩展名发送到PHP页面以存储在数据库中。我在扩展名的manifest.json(在权限下)中包含了https:// * /,但它仍然没有工作
请告诉我如何克服此错误并成功发送请求。
PS:运行扩展程序并发送XHR的页面是一个HTTPS页面,而PHP是一个HTTP页面。这可能是问题的原因。如果是,如何克服这个问题。
答案 0 :(得分:1)
我假设您在内容脚本中执行此操作,如果是这样,那么您不能。它将被视为相同的原产地政策。如果您想在Chrome扩展程序中使用XHR请求,请将其放在扩展程序页面(背景页面)中。
当你这样做时,请确保在允许的情况下添加正确的匹配模式:
http://code.google.com/chrome/extensions/match_patterns.html
例如,https://*/
应为https://*/*
,您的XHR应位于background page,您的内容脚本会通过messaging与其进行通信。
答案 1 :(得分:0)
我知道它有点老了,以防万一有人遇到这个页面。这是this question的副本。
如果您声明了适当的权限,则可以从内容脚本中创建cross-origin-xhr。
答案 2 :(得分:-1)
你做不到。 XHR受the same origin policy的约束。
但您可以使用JSONP代替。