当前位置: 首页 > 知识库问答 >
问题:

我们可以在HTTPS和HTTP站点之间建立连接吗?

苏星宇
2023-03-14

我有一个网站,我托管在Shopify中的HTTPS,然后我通过Angular制作了一个GET到一个HTTP网站。

有棱角的

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Roboto:400,900" rel="stylesheet">

<style type="text/css">
    div {
        font-family: 'Roboto', sans-serif;
    }

    p, a {
        font-size: 12px;
        font-family: 'Roboto', sans-serif;
    }

    .body-text-header-large {
        font-size: 1.5em;
        font-weight: 300;
        line-height: 2em;
        color: #42baf1;
        font-family: 'Roboto', sans-serif;
    }

    .company-name {
        font-weight: 900;
        font-family: 'Roboto', sans-serif;
    }

</style>


<div ng-app="myApp" ng-controller="myCtrl">
    <div class="container">


        <span class="body-text-header-large">DISTRIBUTORS</span>
        <p class="silver">Bioss Antibodies are sold worldwide. Find a distributor near you to order in your area!</p>



        <div ng-repeat="obj in data" >

            <div class="row">

                <!-- Country -->
                <div class="col-xs-4 text-center" >
                <p>{{obj.country}}</p>
                    <img src="data:image/png;base64,{{obj.flag}}" alt="" width="30px">
                </div>

                <!-- Main Info -->
                <div class="col-xs-4" >
                    <p class="company-name">{{obj.user.username}}</p>
                    <p>{{obj.distributor.phone_public}}</p>
                    <p>{{obj.user.email}}</p>
                    <a href="{{obj.distributor.url}}">{{obj.distributor.url}}</a></span> <span class="col span_2_of_6">
                </div>

                <!-- Logo -->
                <div class="col-xs-4 pull-right" >
                    <img src="data:image/png;base64,{{obj.logo}}" alt="" width="100px">
                </div>

            </div>

            <br><hr>


        </div>

    </div>
</div>

<script>

    "use strict";
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope, $http) {
        $http.get("http://d.biossusa.com/api/distributor?key=*******")
        .then(function(response) {
            var data = response.data;

            var array = $.map(data, function(value) {
                return [value];
            });

            console.log(typeof(array));
            console.log(array.length);
            console.log(array);

            try {
              $scope.data = array;
          } catch (error) {
              console.log('its not json');
          }
      });
    });

</script>

局部结果

做得很好

我一直得到

拒绝连接到http://d.biossusa.com/api/distributor?key= ******' ,因为它违反了以下内容安全策略指令:"连接-src'自我'https://*wss://*"。

将我的API站点从HTTP转换为HTTPS可能有点昂贵。这方面的工作是什么?

还有别的办法吗?

是否有任何框架或API可以帮助避免此错误?

共有2个答案

尹赞
2023-03-14

由于CORS策略,无法从HTTP URL调用HTTPS,我也面临同样的问题。所以,我把我的网站从HTTP改为HTTPS,使用[https://www.cloudflare.com/][1]

将您的HTTP网站转换为HTTPS。

江俊能
2023-03-14

从HTTP到HTTPS调用URL时,同源策略将阻止您的请求。浏览器协议作为不同的源处理。

例如,您可以使用CORS来启用跨源HTTP请求。使用CORL将允许您从HTTP向HTTPS发送请求。这是一个很好的指南,它为CORS的使用奠定了基础。

大多数情况下,您需要通过在响应头中添加访问控制允许来源:来允许跨域请求。此配置将在后端应用程序(服务器端)中进行。但目前这对您没有帮助:

请注意,由于浏览器的安全特性,如果您从HTTPS调用URL到HTTP,则CORS/AJAX请求将无法工作。看看w3c权限改造安全,它说:

如在跨原点请求算法和重定向算法的第一步中所指示的那样,用户代理被允许终止该算法并且不发出请求。可以这样做,因为例如:

>

  • 资源的来源被列入黑名单。

    资源的起源是内部网的一部分。

    不支持URL。-https到超文本传输协议是不允许的。

    https不允许,因为证书错误

  •  类似资料:
    • 问题内容: 我遇到了“ char变量为Unicode格式,但也很好地采用/映射到ASCII”。有什么需要提及的?当然,ASCII是1个字节,而Unicode是2。并且Unicodeitself本身包含ASCII代码(默认情况下- 其标准)。那么,在某些语言中,变量支持UNICODE但不支持ASCII? 另外,字符格式(Unicode / ASCII)由我们使用的平台决定,对吗?(UNIX,Linu

    • 问题内容: 在单独的PHP和SQL Server之间建立连接的最佳方法是什么?(两个服务器:SQL Server和PHP PHP)请注意,我使用了wamp。 我阅读了以下类似的文章, 但我想知道还有什么 新主意吗? 我测试了这段完美运行的代码: 问题答案: 我使用PDO_ODBC方法: 1-在具有wamp的服务器上安装ODBC,并在wamp上启用PHP_PDO_ODBC扩展 2-使用支持UTF-8

    • 我尝试过白名单仅应用引擎IP地址,但这是一个很大的地址块,非常麻烦的检索和动态变化。app engine也不能使用compute engine/google SQL Servers的专用IP。 其他创意创意高度欢迎!

    • 我还检查了https连接工作的网站和其他网站,这些网站失败(这里的错误示例)似乎使用了相同的连接加密:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,128位密钥,TLS1.2 我需要从位于不同域和服务器上的几个web服务中收集数据。其中一些是用http设置的,一些是用HTTPS设置的。我不收集任何安全信息,只需要得到网页内容。所以我相信所有人: 要调用HTTP/HTT

    • 我一直在读这个和这个。读完后,我发现自己现在对我的基础知识非常困惑。请帮助我,因为它涉及到网络和JSP的基础知识 考虑这个假设的情况: 如果我打开一些www.xyz。com在某个浏览器上,一天之内不要在该页面上做任何事情。 问题1:如果第二天我从该页面请求一些内容,这是否意味着相同的连接仍然存在。考虑到联系:保持活力是存在的。 问题2.会话在这种情况下是如何工作的?我发现,如果会话过期,连接也会过

    • 问题内容: 在访问我的存储库之前,我需要先创建一个像这样的文件: 在那之后,我能够在端口访问存储库我的。在创建Jenkins作业时,我可以将SVN网址提供为,并且Jenkins能够访问存储库,但是我仍然必须在服务器上手动创建隧道。有什么方法可以让Jenkins自动化,以便如果对隧道的访问失败,则可以进行隧道化,然后重试? 我在用 问题答案: 您需要像pre-scm-buildstep这样的插件 这