繁体   English   中英

Chrome扩展中的跨源XMLHttpRequest

[英]Cross-Origin XMLHttpRequest in chrome extensions

根据chrome扩展API,如果设置了权限,则应允许使用XMLHttpRequest对象进行跨域调用:

扩展可以与其来源之外的远程服务器通信,只要它首先请求跨源权限即可。

我正在密切关注本教程,但下面的代码给出了一条错误消息:

XMLHttpRequest无法加载http://www.google.com/search?hl=en&q=ajax 原始chrome-extension:// bmehmboknpnjgjbmiaoidkkjfcgiimbo不允许使用Access-Control-Allow-Origin。

我不仅允许google.com的请求,而且要求任何网站但仍然无法通过。 有人可以帮忙吗?

我的清单文件:

{
  "name": "The popup",
  "version": "0.1",
  "popup": "popup.html",
  "permissions": [
    "http://*/*",
    "https://*/*",
    "https://www.google.com/*",
    "http://www.google.com/*"
    ],
  "browser_action": {
    "default_icon": "clock-19.png",
    "default_title": "This is title",
    "default_popup": "popup.html"
  }
}

实际的电话:

function sendRequest() {
    document.write("Sending request");
    var req = new XMLHttpRequest();
      req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true);
      req.onreadystatechange = function() {
          if (req.readyState == 4) {
            if (req.status == 200) {
              alert(req.responseText);
              document.write("OK");
            }
          }
        };
      req.send();
} 

两件事情; 您需要确保制作打包的应用/扩展程序,而不是托管的应用程序/扩展程序。 跨源请求不适用于托管应用程序。 假设您已将该部分固定下来,您可能需要尝试将以下内容放入您的权限中: http://*/ 对于我的一个打包应用程序来说,这是我唯一拥有的应用程序,它可以毫无问题地交叉原始内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM