繁体   English   中英

Chrome扩展程序中的跨域XHR失败

[英]Cross-Origin XHR failed in Chrome extension

我正在这样的弹出页面中执行跨源XHR:

// popup.js
var some_url="http://****";
$.get(some_url, function(){
    // do something here
}).error(function(){});

这是清单中的权限:(我写了“ <all_urls>”,但发布到Chrome网上应用店后,它的作用如下)

"permissions": [ "\u003Call_urls>" ]

问题是,有时XHR可以正常工作,但是有时 (例如重新启动浏览器,切换到另一台计算机),我收到以下错误:

XMLHttpRequest cannot load http://****. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'chrome-extension://****' is therefore not allowed access. 

顺便说一句,当我在开发人员模式下使用解压缩版本时,XHR似乎总是可以正常工作。

在您请求的另一台服务器允许您之前,您无法发出跨域请求。

作为对您请求的响应,服务器将发送“允许的收件人”列表。 如果允许您在列表中,则浏览器将向您显示响应,否则将显示您得到的错误。

在开发模式下,它之所以可行,可能是因为服务器允许所有人都处于开发模式,例如进行测试。

如果在不更改任何代码的情况下有时可以运行,但在其他时间却无法运行,则可能是Chrome的错误。 您可以在crbug.com/new上提交错误报告。

暂无
暂无

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

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