大家好,我有一个奇怪的问题,即通过谷歌浏览器扩展程序从https网站向http网站发送请求。
jquery.js:6混合内容:“https://www.google.co.in/webhp?hl=en”页面是通过HTTPS加载的,但请求了一个不安全的XMLHttpRequest端点“http://ip/stats/search.php?keywords=apple”。此请求已被阻止;内容必须通过HTTPS提供。
这是我的代码注入网站......
$(document).ready(function(){
$('input[name=q]').keydown(function(e) {
if (e.keyCode == 13) {
v = $(this).val();
v=encodeURI(v);
$.ajax({
type: 'POST',
url: 'http://myipaddress/stats/search.php?keywords='+v,
data:{'search':v},
success: function(data){
//something....
}
});
}
});
});
的manifest.json
{
"name": "Ads",
"version": "0.0.1",
"manifest_version": 2,
"description": "Injecting stuff",
"background":
{
"scripts": ["jquery.js","background.js"]
},
"browser_action": {
"default_title": "Inject!"
},
"permissions": [
"https://*/*",
"http://*/*",
"tabs"
],"content_scripts" : [
{
"js": ["jquery.js", "inject.js"],
"matches": ["*://*/*"]
}
]
}
答案 0 :(得分:0)
这是一项安全功能。大多数(所有?)现代浏览器都要求HTTPS域通过HTTPS加载所有内容。任何不安全的(HTTP)请求都将被阻止。
但是,您可能需要查看this SO thread,它有一些有趣的链接可能会引导您找到解决方案。
答案 1 :(得分:0)
如果由于页面的来源而无法从内容脚本发出请求,请将其委托给后台脚本。
Send a message到后台脚本,指示它发出请求,然后返回响应。请记住来自处理程序的return true
表示您将异步响应。