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