用户脚本中的jQuery .get for non https
我在我的网站上制作了一个脚本,用于访问不同网站上的表格。 但是,其他网站是HTTP,因此chrome告诉我“此请求已被阻止;内容必须通过HTTPS提供”。
$.get('http://www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });
所以我要问的是:即使不是HTTPS,我如何访问不同网站上的元素。
你有这个标记为tampermonkey 。 如果是这种情况,请使用它。
Tampermonkey允许通过使用GM_xmlhttpRequest Doc绕过“混合活动内容”限制。
所以这个完整的Greasemonkey / Tampermonkey脚本运行正常:
// ==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); } } );
您需要构建代理,服务器端将获取远程内容,并返回它,或通过https连接。
在PHP(例如)中,您可以创建一个简单的“kanji.php”:
我的建议:
只需下载页面,删除不需要的内容(如页眉/页脚),然后在本地提供。 这看起来像一个简单的页面。
是的,两个网站都必须使用https,否则就会失败。 有些内容是加密的,有些则不是。 您可能会将信用卡号码之类的信息发送到不安全的来源。
如果您有权访问您的服务器代码。 您可以创建一个路由,将请求发送到不安全的http域。 这样,所有前端请求都指向同一个域,浏览器很高兴,因为所有请求都是https。
你可以试试这个:
$.get('//www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });