我想找到如何在JavaScript或HTTPS环境下使用JavaScript进行检测。用JavaScript检测HTTPS
我在调用Ajax请求,所以如果我在HTTPS中并调用HTTP Ajax,那么我会得到一个302 Moved Temporarily。
我正在考虑获取当前的window.location.href
并进行字符串操作。
使用JavaScript检测HTTPS的最佳方式是什么?
我想找到如何在JavaScript或HTTPS环境下使用JavaScript进行检测。用JavaScript检测HTTPS
我在调用Ajax请求,所以如果我在HTTPS中并调用HTTP Ajax,那么我会得到一个302 Moved Temporarily。
我正在考虑获取当前的window.location.href
并进行字符串操作。
使用JavaScript检测HTTPS的最佳方式是什么?
您可以使用非标准
window.location.protocol
在Firefox:MDC documentation
在IE中,这似乎是
document.location.protocol
我无法找到关于如何在其他浏览器上表现出来的可靠信息,但我希望他们坚持准标准document.location.protocol
。
也许jQuery url plugin排序了这一点,而不必处理跨浏览器的差异 - 我从来没有用它自己,但它看起来很有希望:在所有浏览器
jQuery.url.attr("protocol");
+1:这是更通用的方式:) – Sarfraz 2010-05-18 08:21:31
location.protocol
作品。
有两个以上的浏览器:) – 2010-05-18 08:30:54
哎!谢谢你让我回到现实:) – 2010-05-18 09:03:38
寻找如何谷歌分析添加他们的脚本的页面:
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
然后document.location.protocol似乎安全的所有浏览器。
伟大的洞察力。作品完美无瑕。 – xaragen 2015-08-14 12:49:20
对于像这样的东西,存在一个非常整洁的称为URI的lib。 https://github.com/medialize/URI.js
你可能不需要这个只是为了获取协议,但如果你要成为字符串操作的URIs,你应该使用它。
这个怎么样?
var protocol = window.location.href.indexOf("https://")==0?"https":"http";
应该是protocol = window.location.href.indexOf(“https://”)== 0?“https”:“http”; – 2017-10-10 17:03:42
对,谢谢! – 2017-10-12 10:14:04
在许多情况下,可以完全忽略该协议。所以,与其
<img src="https://test.com/image.jpg" />
一个可以使用
<img src="//test.com/image.jpg" />
然后,浏览器会自动将当前的协议。这也适用于头文件,它也应该适用于Ajax调用。
编辑:这样做是现在被认为是一个反模式:
现在SSL鼓励大家,并没有性能问题,这种技术现在是一个反模式。如果您需要的资产在SSL上可用,请始终使用https://资产。
允许代码段通过HTTP请求打开最近的Github Man-on-side攻击攻击的大门。即使您的站点使用HTTP,请求HTTPS资产也始终安全,但事实并非如此。
证实这对ajax调用起作用......至少在AngularJS中'$ http.get('// example.com')' – parliament 2015-07-01 20:10:44
我碰到的一个警告是,在将代码部署到移动设备(如果您使用的是Cordova或PhoneGap)。在这种情况下//将解析为file://所以你永远不能使用它来进行http调用。如果你没有开发移动设备,只是忽略这一点。 – parliament 2015-07-02 21:20:06
@DanDascalescu做您使用 “标志”,以纪念其视为重复? – HackerKarma 2015-08-06 00:33:52
@HackerKarma:我投票结束三个星期前。什么也没有发生,只有那时我使用了国旗。 – 2015-08-06 01:03:33
@DanDascalescu谢谢。我只是将其标记为关闭。让我们看看发生了什么。 – HackerKarma 2015-08-06 01:27:54