另一个与Cross-XHR相关的

2023-12-22

我知道有很多关于“Access-Control-Allow-Origin 不允许”的问题。错误。

但我尝试过其中一些但没有成功。 :(

一些约会:

  • 我正在尝试构建一个 dev-tools-tab 扩展
  • 我可以像这样触摸 flickr API这个例子 http://developer.chrome.com/dev/extensions/getstarted.html shows
  • 我无法访问本地主机

已经尝试了几种权限通配符

http://localhost/
http://*/
*://*/

已经尝试过打包和解包扩展

目前,manifest.json 有

"version": "0.0.1",
"manifest_version": 2,
"devtools_page": "components/devtools.html",
"permissions": [
    "http://*/"
]

开发工具.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script src="../js/devtools.js"></script>
</body>
</html>

并且,devtools.js

(function (window) {
"use strict";
var xhr1, xhr2, url;
xhr1 = new window.XMLHttpRequest();
xhr2 = new window.XMLHttpRequest();
xhr1.onreadystatechange = function () {
    if (this.readyState === 4) {
        console.log('flickr ok');
    }
};
xhr2.onreadystatechange = function () {
    console.log(this.readyState);
    if (this.readyState === 4) {
        console.log(this.responseText);
    }
};
url = 'https://secure.flickr.com/services/rest/?' +
          'method=flickr.photos.search&' +
          'api_key=90485e931f687a9b9c2a66bf58a3861a&' +
          'text=' + encodeURIComponent('cats') + '&' +
          'safe_search=1&' +
          'content_type=1&' +
          'sort=interestingness-desc&' +
          'per_page=20';
xhr1.open('get', url, true);
xhr1.send();
url = 'http://apache.local';
xhr2.open('get', url, true);
xhr2.setRequestHeader('Origin', url);
xhr2.send();

Chrome 控制台输出:

1 devtools.js:12
Refused to set unsafe header "Origin" devtools.html:1
XMLHttpRequest cannot load http://apache.local/. Origin chrome-extension://nafbpegjhkifjgmlkjpaaglhdpjchlhk is not allowed by Access-Control-Allow-Origin. devtools.html:1
4 devtools.js:12
flickr ok devtools.js:8

铬版本: 28.0.1500.20 开发

感谢任何建议。


我懂了!

实际上,问题是我试图在 devtools 页面上执行 XHR 请求,但它似乎没有权限像弹出页面那样绕过跨域访问策略。

Devtools 选项卡尝试也不成功。

edit

与阶段许可相关。不是通配符许可。正如我所说,我已经设法在某些域上执行查询,但没有将它们显式地放在我的权限数组上。

问题实际上在于运行的脚本的类型。

同样的脚本,如果用作弹出窗口,效果很好。所以,我也尝试过作为后台脚本,也取得了成功!我面临的问题是 devtools_page 和相关的没有这样的权限......

开发人员工具窗口中的扩展页面可用的 API 包括上面列出的所有 devtools 模块和 chrome.extension API。其他扩展 API 不可用于开发人员工具页面,但您可以通过向扩展的后台页面发送请求来调用它们,这与在内容脚本中的完成方式类似。

http://developer.chrome.com/extensions/devtools.html http://developer.chrome.com/extensions/devtools.html

该级别的脚本拒绝非显式交叉 xhr。

解决了将请求放入后台脚本并使用的问题消息API http://developer.chrome.com/dev/extensions/messaging.html.

谢谢你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

另一个与Cross-XHR相关的 的相关文章

随机推荐

  • 我应该使用哪个版本的 MSXML?

    似乎这是一个常见问题 尽管我在 SO 上找不到它 我应该在我的应用程序中使用哪个版本的 MSXML 更重要的是 我应该如何决定 有 MSXML3 4 5 和 6 我最近发布了一些代码通过 vb 脚本调用 wcf 服务 https stack
  • Spring Security 身份验证入口点

    我已通过设置在 Spring MVC 应用程序上启用了 Rest 支持AuthenticationEntryPoint在我的 security context xml 上
  • 在 Backbone.js 中处理视图和模型对象

    在不需要时处置模型 视图实例的最有效方法是什么 通常 我将所有逻辑放在控制器 路由器中 它决定应该创建什么视图以及应该向它们提供什么模型 通常 有一些处理程序函数 对应于不同的用户操作或路由 每次执行处理程序时我都会创建新的视图实例 当然
  • dplyr 中波浪号和点符号的含义

    Summary我正在读一本article https dplyr tidyverse org articles colwise html关于 dplyr 的跨函数的主题 看第一个使用示例 我看到了以前从未见过的运算符的使用 我不知道它们是否
  • VisNetwork 与 Shiny 的点击事件

    我已经使用 Shiny 中的 visNetwork 包构建了我的网络 我想单击一个节点 然后显示数据框中有关该节点的信息 我已经能够使用单击和近点函数对散点图执行此操作 例如此处显示的 Shiny 示例中的函数 http shiny rst
  • 我可以在 C 程序中使用 cstdio 吗?

    当我添加时 我在 cstdio 中收到大量错误 include
  • 订购 ObservableCollection 而不创建新的 [重复]

    这个问题在这里已经有答案了 我有以下代码来重新订购ObservableCollection
  • 如何合并嵌套字典?

    我有一个嵌套字典 python 3 9 列表 看起来像这样 records Total Owner Available 15 to 34 years 1242 Total Owner Available 35 to 64 years 569
  • Keras 中的指标是如何计算的?

    我想知道 Keras 如何计算一个指标 是否是自定义指标 例如 假设我有以下指标 它产生预测与真实情况之间的最大误差 def max error y true y pred import keras backend as K return
  • 多个 uniqid() 调用不唯一

    我有一个有趣的例子 其中多次重复调用uniqid 当本地托管在 XAMPP 上时 不会生成唯一的编号 这个唯一的 ID 会重复 5 到 20 次 然后就会神秘地发生变化 然而 作为一个有趣的转折 该代码可以工作完美在我们的生产服务器上 这就
  • Chrome 扩展如何基本上 cURL 其他页面? [复制]

    这个问题在这里已经有答案了 我正在考虑编写一个 Chrome 扩展程序 需要在某个网站的某个动态页面上抓取一些链接并分析链接页面的内容 实际上 我对编写浏览器扩展了解不多 所以在我致力于学习如何编写之前 我想看看它是否可行 我确实知道扩展通
  • Python 描述符中实例和所有者的用途是什么?

    我正在尝试理解 Python 中的描述符 我似乎无法理解描述符方法中的实例和所有者是什么 object get self instance owner 现在我已经阅读了文档 https docs python org 3 reference
  • 在 Ruby 中如何测试一个值是否为素数?有简单的方法和困难的方法吗?

    我正在尝试创建一个程序来测试某个值是否为素数 但我不知道如何进行 这是我的代码 class DetermineIfPrime def initialize nth value nth value nth value primetest en
  • 如何配置 Visual Studio 2013 以与 Git/SourceTree 一起使用

    我希望能够将 Git 与 Visual Studio 2013 一起使用 我也希望能够使用 SourceTree 但我不知道两者如何一起使用 我在 Visual Studio 中创建了一个项目 并将其配置为使用 Git 但我不知道存储库是在
  • javascript 中的范围表现得很奇怪

    对象通过 JavaScript 中的引用传递 意味着该对象从任何地方发生的变化都应该得到反映 在本例中 console log a 的预期输出为 function change a b a x added a b assigning a a
  • 基于管道分隔列创建新的 pandas 列并可能重复

    这个问题与我之前的问题的良好解决方案有关 基于 Pandas 中的管道分隔列创建多个新列 https stackoverflow com questions 48010030 create multiple new columns base
  • 如何(轻松)删除 Xcode 6 中 Interface Builder 中的约束

    假设您已选择一个对象 并且 实用程序 面板中的 大小选择器 已打开 您可以看到应用于对象的约束列表 在约束列表中 您可以单击小齿轮并选择删除 在 Xcode 6 中不能 IB中删除约束还有几种方法 在文档大纲中找到约束并以这种方式将其删除
  • SQLAlchemy ORM __init__ 方法与

    In the SQLAlchemy ORM 教程 http docs sqlalchemy org en latest orm tutorial html以下代码作为将映射到表的类的示例 gt gt gt from sqlalchemy i
  • 如何在 Laravel 中创建两种类型的用户

    我想问一下如何在laravel中创建两种类型的用户 我有两张桌子 一张给顾客 一张给客户 我的问题是如何发挥这种作用 我是否必须制作两个不同的模型或使用模型 User 并在中间件中制作一些功能 谢谢 如果您正在寻找最简单的解决方案 您可以添
  • 另一个与Cross-XHR相关的

    我知道有很多关于 Access Control Allow Origin 不允许 的问题 错误 但我尝试过其中一些但没有成功 一些约会 我正在尝试构建一个 dev tools tab 扩展 我可以像这样触摸 flickr API这个例子 h