Im делает действительно простое расширение Chrome, то, что перенаправляет страницы на HTTP-протоколе, на протокол https, если существует. Im на отладке, и я нашел facebook, что имеет как http, так и https.Получение -> Происхождение * не разрешено Access-Control-Allow-Origin
Код здесь:
function redirect() {
chrome.tabs.query({active: true}, function(tabArray) {
var currentURL = tabArray[0].url; //http://facebook.com
var httpsURL = generateSSL(currentURL); //https://facebook.com
if(httpsURL == currentURL){
console.log(currentURL+" is already on HTTPS");
chrome.browserAction.setIcon({path:"../images/padlock_green.png"});
} else if(checkSSL(httpsURL)){
chrome.tabs.update(tabArray[0].id, {url: httpsURL});
chrome.browserAction.setIcon({path:"../images/padlock_green.png"});
chrome.browserAction.setBadgeText({text:"SSL"});
console.log("SSL found,"+currentURL+" redirected to"+httpsURL);
} else {
//donothing
console.log(currentURL+" has no SSL");
chrome.browserAction.setIcon({path:"../images/padlock_red.png"});
}
});
}
Аякса вызов:
function checkSSL(url){
$.support.ajax = true;
$.ajax({
url: url,
type:'HEAD',
error: function()
{
return false;
},
success: function()
{
return true;
}
});
}
Проблема заключается в том, что я получаю в консоли следующее сообщ об ошибке:
XMLHttpRequest cannot load https://www.facebook.com/. Origin chrome-extension://pgidanbjmliilmmohlphbagcapafjjpg is not allowed by Access-Control-Allow-Origin.
I не имеют никаких идей, что может быть проблемой :(
Кажется, что ваше расширение делает запрос Ajax ... –
sry, я забыл скопировать вызов ajax, я обновил сообщение:/ –
Но этот вызов Ajax - это проблема ... вам не разрешено это делать, это сообщение об ошибке. Кроме того, вы не можете вернуть значение из обратного вызова Ajax, вся настройка не будет работать. Вы должны найти другой способ проверить, доступна ли версия HTTPS. –