用户脚本中的jQuery .get for non https

时间:2017-06-19 00:44:59

标签: javascript jquery greasemonkey tampermonkey

我在我的网站上制作了一个访问不同网站上的表格的脚本。但是,其他网站是HTTP,因此Chrome告诉我“此请求已被阻止;内容必须通过HTTPS提供。”

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

所以我要问的是:即使不是HTTPS,我怎样才能访问不同网站上的元素。

4 个答案:

答案 0 :(得分:3)

您的标记为。如果是这种情况,请使用它。

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。

enter image description here

答案 3 :(得分:-1)

你可以试试这个:

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