检查用户提供的URL是否将重定向到https或http

时间:2013-09-19 08:09:12

标签: javascript jquery url

我有一个用户输入网址的文本框。

例如,用户输入www.google.com或http://www.google.com。但谷歌会将所有http请求重定向到https。

如何检查提供网址的服务器是否会从用户输入的字符串中强制执行http或https?

即。如果用户输入http://www.google.com,我需要返回https。

2 个答案:

答案 0 :(得分:0)

你无法通过Javascript进行此操作。

获取此信息的唯一方法是实际请求URL并检查服务器响应的HTTP响应头。当状态代码为301(永久移动)或307(临时移动)且响应的Location: - 标头中的URL使用不同的协议时,它似乎是从http重定向到https,反之亦然。但遗憾的是,没有API可以通过客户端Javascript获取此信息。

作为一种解决方法,您可以将URL发送到您的服务器并使用服务器端编程来请求网站并检查状态代码。但请注意,目标服务器为您的服务器提供的响应不一定与客户端相同,因为重写规则可能很复杂。

答案 1 :(得分:-2)

使用JavaScript match功能。

$("#inputField").val().match(/^http/);

或在if语句中

if (null !== $("#inputField").val().match(/^http/)) {
    // do something
}

如果您需要更多灵活性,只需在输入字段上绑定一些事件即可。然后你可以动态检查。