Javascript 非https的jQuery.get,在用户脚本中

Javascript 非https的jQuery.get,在用户脚本中,javascript,jquery,greasemonkey,tampermonkey,Javascript,Jquery,Greasemonkey,Tampermonkey,我在我的网站上制作了一个脚本,可以访问不同网站上的表。然而,另一个网站是HTTP,所以chrome告诉我“此请求已被阻止;内容必须通过HTTPS提供。” 所以我要问的是:即使不是HTTPS,我如何访问不同网站上的元素。您需要构建一个代理,服务器端可以获取远程内容并返回,或者通过HTTPS连接 例如,在PHP中,您可以创建一个简单的“kanji.PHP”: 我的建议是: 只需下载页面,去掉不需要的内容(如页眉/页脚),然后在本地提供。这似乎是一个足够简单的页面。您可以尝试以下方法: $.get

我在我的网站上制作了一个脚本,可以访问不同网站上的表。然而,另一个网站是HTTP,所以chrome告诉我“此请求已被阻止;内容必须通过HTTPS提供。”


所以我要问的是:即使不是HTTPS,我如何访问不同网站上的元素。

您需要构建一个代理,服务器端可以获取远程内容并返回,或者通过HTTPS连接

例如,在PHP中,您可以创建一个简单的“kanji.PHP”:


我的建议是:

只需下载页面,去掉不需要的内容(如页眉/页脚),然后在本地提供。这似乎是一个足够简单的页面。

您可以尝试以下方法:

$.get('//www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });

是的,这两个网站都必须使用https,否则就达不到目的。有些内容是加密的,有些则不是。您可能会将应该得到保护的信息(如信用卡号)发送到不安全的来源

如果您有权访问服务器代码。您可以创建一个路由,将请求发送到不安全的http域。这样,您的所有前端请求都指向同一个域,浏览器会很高兴,因为所有请求都是https

您将此标记为。如果是这样,就用它

Tampermonkey允许通过使用绕过“混合活动内容”限制

因此,这个完整的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);
    }
} );

这只会使它成为
$。get('https://www.kanjidamage.com/kanji,空,用 searchKD(){/*用*/ });这不起作用谢谢你给出了最好的答案!我对整个xmlhttprequest的事情感到非常困惑。你提供的链接没有解释任何东西…我如何访问“响应”中的标记、类和ID?要访问类等,你需要解析结果。我推荐
DOMParser
。有几个答案可以解释吃了这个过程……但是,这一切都超出了这个问题的范围——这个问题已经得到了回答
$.get('//www.kanjidamage.com/kanji', null, function searchKD () { /*function*/ });
// ==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);
    }
} );