编辑: 当我将项目加载为 chrome 扩展时,我遇到了这个问题。我认为这可能是特定于 chrome 扩展的问题。
当我尝试在谷歌自定义搜索引擎上搜索时,我得到一个结果页面,但它是空白的。当我检查它时,我收到以下错误:
拒绝加载脚本' http://clients1.google.com/complete/search?client=partner&hl=en&sugexp=gsno …208%3Avdsj6wr1edq&types=t&ds=cse&cp=1&gs_id=4&q=m&callback=google.sbox.p50'违反以下内容安全政策指令:“script-src 'self' 'unsafe-eval' https://*.google.com”。
我认为这是因为脚本使用的是“http”。根据 Google 的内容安全政策,不接受“http”来源
由于中间人攻击在 HTTP 上是微不足道且无法检测到的,因此这些来源将不被接受。- https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing
我的html:
<html>
<head>
<script src="fact.js"></script>
</head>
<body>
<div id="gcse-search-bar">
<gcse:search defaultToImageSearch="true"></gcse:search>
</div>
</body>
</html>
我的 js 文件。就我而言,它是调用 fact.js
document.addEventListener('DOMContentLoaded', function() {
(function() {
var cx = '016674471602576918208:vdsj6wr1edq';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
});
我的清单.json:
{
"manifest_version": 2,
"name": "my extension",
"content_security_policy": "script-src 'self' 'unsafe-eval' https://*.google.com; object-src 'self'",
"description": "my extension",
"version": "1.0",
"browser_action": {
"default_icon": "my.png",
"default_popup": "my.html"
},
"permissions": [
"activeTab",
"http://*/*",
"https://*/*",
"https://En.wikipedia.org/*",
"http://*.google.com/"
],
"content_scripts": [{
"js": ["fact.js"],
"matches": ["http://*/*", "https://*/*"]
}]
}
我需要做什么才能让返回结果使用 HTTPS 而不是 HTTP?