首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Chrome-extension is not Allow by Access-Control-Allow-Origin“的含义?

"Chrome-extension is not Allow by Access-Control-Allow-Origin“的含义?
EN

Stack Overflow用户
提问于 2011-12-07 21:57:59
回答 2查看 1.4K关注 0票数 1

这是我第一次开发Google Chrome扩展,我的目标是从我在本地机器上托管的REST服务中检索URL,并将其显示在popup...this上,这是我使用的代码:

代码语言:javascript
复制
<style>
body {
    min-width:357px;
    overflow-x:hidden;
}
</style>

<script>
var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://URLTORESTSERVICE/Items",
    true);
req.onload = showWorklistItems;
req.send(null);

function showWorklistItems() {
    var worklistitems = req.responseXML.getElementsByTagName("WorklistItem");
    for (var i = 0, wli; wli = worklistitems[i]; i++) {
    var link = document.createElement('a');
    link.setAttribute('href', constructWLIURL(wli));
    document.body.appendChild(link);
  }
}

function constructWLIURL(wli) {
    return "testing" + wli.getAttribute("SerialNumber");
}
</script>

但是当我执行以下命令时,我得到了这个错误:

代码语言:javascript
复制
XMLHttpRequest cannot load http://URLTORESTSERVICE/Items. Origin chrome-extension://caioejefhikijgcaondigdaaobomailk is not allowed by Access-Control-Allow-Origin.
EN

回答 2

Stack Overflow用户

发布于 2011-12-08 00:52:09

你正在点击CORS或“跨域资源共享”。http://enable-cors.org/是关于这个主题的一个很好的资源。这是由于您的请求不是源自与数据服务相同的域造成的。

为了使用来自另一个域的ajax请求中的数据,您需要请求数据提供者向其http响应添加一个类似于以下内容的CORS头。(注意: JSONP虽然很危险,但可以解决这个问题。)

代码语言:javascript
复制
Access-Control-Allow-Origin: *

编辑:我看到你是数据提供者-输出那个头,然后你就会被设置。

票数 3
EN

Stack Overflow用户

发布于 2011-12-08 00:49:22

Access-Control-Allow-Origin是由您的服务器发送(或不发送)的标头。某些浏览器(特别是Chrome和Firefox)在跨域请求时会遵守此标头。这意味着,除非原始域在该标头中列出,否则浏览器将拒绝执行请求(或至少完全执行)。

你可以改变你的本地服务器来设置正确的头,或者你也可以改变chrome的设置来停止把你正在做的事情当做跨域请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8416476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档