I made a script on my website that accesses a table on a different website. However, the other website is HTTP so chrome is telling me \"This request has been blocked; the c
Yeah, both sites must use https, or else it defeats the purpose. Some content is encrypted & some is not. You could potentially send information that should be secured like a credit card number to an unsecured source.
If you have access to your server code. You can make a route that makes the request to the unsecured http domain. This way all your frontend requests point to the same domain, and the browser is happy as all requests are https.
you can try this :
$.get('//www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });
You have this tagged as tampermonkey. If that is the case, use it.
Tampermonkey allows one to bypass "mixed active content" restrictions by using GM_xmlhttpRequestDoc.
So this complete Greasemonkey/Tampermonkey script works fine:
// ==UserScript==
// @name _Mixed content AJAX
// @match https://stackoverflow.com/questions/44620859/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_xmlhttpRequest
// @connect kanjidamage.com
// ==/UserScript==
GM_xmlhttpRequest ( {
method: "GET",
url: "http://www.kanjidamage.com/kanji",
onload: function (response) {
console.log (response.responseText);
}
} );
You either need to build a proxy, something server side that will get the remote content, and return it, or connect over https.
In PHP (For example), you could create a simple "kanji.php":
<?php
echo file_get_contents('http://www.kanjidamage.com/kanji');
?>
My suggestion:
Just download the page, strip the content you don't need (Like the header/footer), and then serve it locally. It seems like a simple enough page.