我有一个用户输入网址的文本框。
例如,用户输入www.google.com或http://www.google.com。但谷歌会将所有http请求重定向到https。
如何检查提供网址的服务器是否会从用户输入的字符串中强制执行http或https?
即。如果用户输入http://www.google.com,我需要返回https。
答案 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
}
如果您需要更多灵活性,只需在输入字段上绑定一些事件即可。然后你可以动态检查。