我已经编写了一个简单的Chrome扩展程序,该扩展程序配置了工作人员ID和该页面中的字段名称以引起关注。即:id
和fieldName
当用户在该字段中单击时,ajax用于将用户ID发送到本地Web服务器。
$('[name=' + fieldName + ']').focus(function () {
console.log ( "FOCUS - " + id + ' ' + fieldName)
$.ajax({ url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + id });
});
扩展程序可以在任何托管网页上运行,LOCAL_IP_ADDRESS
是我们本地网络服务器的内部IP地址,用户PC也可以访问该网址。
该网站没有发送任何数据,只有扩展配置中的值。
以上工作正常。然而...
我加载了一个HTTPS网站,Chrome会将其报告为安全。
我在相关字段中单击,staffID将发送到我们的本地网络服务器。但是,该网站现在报告为不安全。
我能做些什么来阻止这种情况发生吗?
由于
答案 0 :(得分:1)
声明event page:
"background": {
"scripts": ["jquery.js", "eventPage.js"],
"persistent": false
},
从您的内容脚本中,将邮件中的ID发送到活动页面:
$('[name=' + fieldName + ']').focus(() => chrome.runtime.sendMessage({id}));
事件页面执行AJAX请求:
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
$.ajax({url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + msg.id});
});
或者,您可以异步地将AJAX请求结果发送回内容脚本:
内容脚本:
$('[name=' + fieldName + ']').focus(() => {
chrome.runtime.sendMessage({id}, status => console.log(status))
});
活动页面:
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
$.ajax({
url : 'https://LOCAL_IP_ADDRESS/staff.php?staffID=' + msg.id,
complete: xhr => sendResponse(xhr.status),
});
return true; // leave the channel open for sendResponse
});