用户脚本中的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*/ });