我正在撰写一个扩展程序,该扩展程序应在特定游戏收到更新时通知用户。数据从MySQL数据库接收。
我做了一个ajax调用来接收我的localhost服务器上的PHP脚本提供的json数据(用于测试目的)。
嗯,它在HTTP网站上运行良好。但该脚本被HTTPS网站阻止。
消息是“此页面正在尝试从未经身份验证的来源加载脚本”,这会导致Google的此问题排查页面: Link
有什么建议吗?
The Manifest:
{
"manifest_version": 2,
"name": "Extension",
"version": "1.0",
"icons": {
"128": "icon128.png",
"48": "icon48.png",
"16": "icon16.png"
},
"page_action": {
"default_icon": "icon16.png",
"default_popup": "popup.html"
},
"background":{
"scripts" : ["eventPage.js"],
"persistent": false
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js", "jquery-3.2.0.min.js"],
"css": ["content.css"],
"run_at": "document_start",
"match_about_blank": true
}
],
"permissions": [
"notifications", "http://localhost/*", "tabs"
]}
eventPage.js
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {todo: "displayNews"});
});
});
content.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
if (request.todo == "displayNews"){
$.ajax({
url: 'http://localhost/database/connect.php',
type:'POST',
dataType: 'json',
success: function(output_string){
alert(output_string[1].url);
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.statusText);
alert(thrownError);
}
});
//Some other code is executed here
}});
答案 0 :(得分:0)
根据Barmar的评论,我不得不将localhost配置为HTTPS - 这就是问题所在。
以下是如何使用XAMPP来解决这个问题的答案:How do I use https (SSL) in XAMPP while using virtual hosts
如果Apache服务器没有启动,则必须在httpd.conf文件中取消注释该行: LoadModule ssl_module modules / mod_ssl.so