jQuery .get for non https, in a userscript

后端 未结 4 1914
一生所求
一生所求 2021-01-15 13:57

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

相关标签:
4条回答
  • 2021-01-15 14:15

    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.

    0 讨论(0)
  • 2021-01-15 14:23

    you can try this :

    $.get('//www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });
    
    0 讨论(0)
  • 2021-01-15 14:24

    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);
        }
    } );
    
    0 讨论(0)
  • 2021-01-15 14:25

    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.

    0 讨论(0)
提交回复
热议问题