0

我有一个文本框,用户在其中输入 url。

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

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

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

4

2 回答 2

0

你不能从 Javascript 中做到这一点。

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

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

于 2013-09-19T08:39:07.837 回答
-2

使用 JavaScriptmatch函数。

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

或者在 if 语句中

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

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

于 2013-09-19T08:14:33.737 回答