整站HTTPS后的跨域请求 CORS是否还有效?
2016-08-19 19:40
246 查看
|导语
手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
然后代码跑起来
页面代码
这次测试的域名是weather.mp.qq.com,ajax访问的域名是imgcache.qq.com,原来http时代,已经做好了cors授权了。
那么运行后,能看到打印的json信息,就表示正常访问。
好了,等了半天,估计大家只需要一个答案:OK,正常访问。
手Q马上就要全量https了,很多业务都有跨域ajax请求的需求,原来使用的CORS头在HTTPS环境中还继续能用吗?我搜遍了谷歌、百度,都没看到有明确的答案,那么就自己来尝试一下吧。
关于CORS在HTTPS环境下到底效果如何,一直没找到明确的答案。在MDN等网页只能看到CORS是解决HTTP跨域的方案,或者HTTP访问HTTPS/HTTPS访问HTTP都属于跨域范围,但没有人提到两个HTTPS站点能否通过CORS互相访问。那么,就自己动手吧。
首先,使用nodejs搭建一个https服务器。
而搭建https服务器前,我们需要先手工搞个证书。
具体可以使用openssl自行创建,我参考的是:
然后代码跑起来
consthttps=require('https'); constfs=require('fs'); constoptions={ 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);
页面代码
<!DOCTYPEhtml>
<html>
<headlang="en">
<metacharset="UTF-8">
<title></title>
</head>
<body>
<script>
/*Zeptov1.2.0-zeptoeventajaxformie-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,正常访问。
相关文章推荐
- CORS跨域请求资源
- 跨域请求——jsonp与cors
- cors跨域请求
- Java实现CORS跨域请求
- Ajax请求的跨域(CORS)问题
- WebApi Ajax 跨域请求解决方法(CORS实现)
- asp.net 采用 cors 方式解决跨域请求
- (三)ajax请求不同源之cors跨域
- 搞定所有的跨域请求问题: jsonp & CORS
- js判断请求的url是否可访问,支持跨域判断的实现方法
- OPTIONS 方法在跨域请求(CORS)中的应用
- 跨域请求两种方法 jsonp和cors的实现
- cors实现跨域请求
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
- CORS跨域请求之简单请求与非简单请求
- CORS跨域请求C#版
- AJAX与跨域请求CORS(JS)
- ajax是否能跨域请求,解决的办法
- SpringBoot使用CORS解决跨域请求问题
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结