| 导语 

手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,正常访问。

整站HTTPS后的跨域请求 CORS是否还有效?的更多相关文章

  1. Django-缓存机制、跨域请求(CORS)、ContentType组件

    Django缓存机制: 在settings中间件里面设置: 三个粒度: 1 全站缓存 用中间件: MIDDLEWARE = [ # 'django.middleware.cache.UpdateCac ...

  2. 【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验

    在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一 ...

  3. .NET 反向代理 YARP 跨域请求 CORS

    使用过 nginx 的小伙伴应该都知道,这个中间件是可以设置跨域的,作为今天的主角,同样的 反向代理中间件的 YARP 毫无意外也支持了跨域请求设置. 有些小伙伴可能会问了,怎样才算是跨域呢? 在 H ...

  4. 跨域请求CORS

    参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS http://www.ruanyifeng.com/b ...

  5. Nginx配置跨域请求 CORS

    当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is present on the requested resource,需要给Nginx服 ...

  6. Django跨域请求之JSONP和CORS

    现在来新建一个Django项目server01,url配置为 url(r'^getData.html$',views.get_data) 其对应的视图函数为get_data: from django. ...

  7. Flask框架踩坑之ajax跨域请求

    业务场景: 前后端分离需要对接数据接口. 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能更好的理解,应 ...

  8. 百万年薪python之路 -- 请求跨域和CORS协议详解

    楔子 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab ...

  9. 解决前后端分离的“两次请求”引出的Web服务器跨域请求访问问题的解决方案

    在前后端分离的项目中,前端和后端可能是在不同的服务器上,也可以是Docker上,那就意味着前端请求后端Restful接口时,存在跨域情况. 后端在做了通用的跨域资源共享CORS设置后,前端在做ajax ...

随机推荐

  1. 《CSS3秘籍》(第三版)-读书笔记(3)

    第9章 装饰网站导航 1.  选择要定义样式的链接 大部分浏览器都支持4种基本的链接状态:未访问的链接.已访问的链接.访问者的鼠标正悬停在上方的链接,以及正被单击的链接.CSS提供了与这些状态对应的4 ...

  2. const限定符

    1 const的作用 便于进行类型检查.可以保护被修饰的东西.避免不必要的内存分配.为函数重载提供一个参考. 2 const成员函数 const成员函数只能访问数据成员的值,而不能修改他. #incl ...

  3. poi管道流的导入导出

    /** * 导入学生信息 * * @param classid * @param uploadFilePath * @return */ public boolean uploadStudentFil ...

  4. 使用 xlrd 模块实现对excel 的读取、excel转json 、excel 转 mysql insert 语句

    #-*- coding:utf-8 -*- # 处理 excel 中的 area 为 Mysql insert 语句 import xlrd, json, codecs, os # data = xl ...

  5. [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

    mysql 启动总是报错: 错误日志中显示: [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' ...

  6. lock模拟CountDownEvent

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 【转】virtualenv -- python虚拟沙盒

    有人说:virtualenv.fabric 和 pip 是 pythoneer 的三大神器. 不管认不认同,至少要先认识一下,pip现在倒是经常用到,virtualenv第一次听说,不过,总得尝试一下 ...

  8. js作用域和词法分析

    都知道js中不存在类似于c++等语言的块级作用域,例如for循环中定义的变量,其实是属于当前对象下的属性,同一对象下可以随便访问.只有函数可以限定一个变量的作用范围,即函数才是变量的作用域. 对于函数 ...

  9. [转]moveTaskToback退后台

    http://blog.csdn.net/dacainiao007/article/details/17352367 方法:public boolean moveTaskToBack(boolean ...

  10. mysql增加普通用户后无法登陆问题的解决方法

    解决方法: 增加普通用户后,执行: mysql> use mysql mysql> delete from user where user=''; mysql> flush priv ...