zoukankan      html  css  js  c++  java
  • 整站HTTPS后的跨域请求 CORS是否还有效?

    | 导语 

    手Q马上就要全量https了,很多业务都有跨域ajax请求的需求,原来使用的CORS头在HTTPS环境中还继续能用吗?我搜遍了谷歌、百度,都没看到有明确的答案,那么就自己来尝试一下吧。

    关于CORS在HTTPS环境下到底效果如何,一直没找到明确的答案。在MDN等网页只能看到CORS是解决HTTP跨域的方案,或者HTTP访问HTTPS/HTTPS访问HTTP都属于跨域范围,但没有人提到两个HTTPS站点能否通过CORS互相访问。那么,就自己动手吧。

     

    首先,使用nodejs搭建一个https服务器。

    而搭建https服务器前,我们需要先手工搞个证书。

    具体可以使用openssl自行创建,我参考的是:https://cnodejs.org/topic/54745ac22804a0997d38b32d

     

    然后代码跑起来

    const https = require('https');
    const fs = require('fs');
    
    const options = {
        key: fs.readFileSync('./cert/ca-key.pem'),
        cert: fs.readFileSync('./cert/ca-cert.pem'),
        passphrase: '123456'
    };
    
    https.createServer(options, function (req, res) {
        res.writeHead(200);
        res.end(fs.readFileSync('./https.html'));
    }).listen(443);
     

     

    页面代码

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
        /* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */
        //这里省略10000字节的代码,自行补充吧
    </script>
    
    <script>
        $.get('//imgcache.qq.com/zzapp/health/js/config/qqhealth_score_strategy.json', function (ret) {
            console.log(ret);
        });
    </script>
    </body>
    </html>

     

    这次测试的域名是weather.mp.qq.com,ajax访问的域名是imgcache.qq.com,原来http时代,已经做好了cors授权了。

     

    那么运行后,能看到打印的json信息,就表示正常访问。

     

    好了,等了半天,估计大家只需要一个答案:OK,正常访问。

  • 相关阅读:
    [原]Linux 命令行浏览器
    Linux 命令行浏览器
    [原]Linux 命令行 发送邮件
    Linux 命令行 发送邮件
    [原]Linux 修改时区
    Linux 修改时区
    [原]Ubuntu 下安装Mongodb
    离线解密RDP凭证密码
    [Win]权限维持
    Nginx反向代理
  • 原文地址:https://www.cnblogs.com/kenkofox/p/5788822.html
Copyright © 2011-2022 走看看