Поскольку вы не можете загрузить внешнюю веб-страницу с помощью ajax, чтобы проверить, отвечает ли страница, вы можете сделать следующее:
- Сначала проверьте правильность строки URL, используя регулярное выражение:
JavaScript:
Отредактировано, чтобы быть НАМНОГО более прощающим. Поскольку javascript не поддерживает сопоставление символов Юникода без каких-либо сторонних библиотек, я выбрал такой подход:
function Validate(url){
var pattern = /(https?:\/\/)?.+\.[a-z]{2,4}/i
return pattern.test(url);
}
alert(Validate("http://abcü好le2.com/?query=test&test=1")); //true
alert(Validate("https://hurmårdu.se/blog/?test=1")); //true
alert(Validate("abcü好le2.com/?query=test&test=1")); //true
alert(Validate("hurmårduse/blog/?test=1")); //false
alert(Validate("hurmårduse")); //false
Примечание. Чтобы сделать эту функцию еще лучше, мы можем добавить поддержку для добавления http: // в начале строки, если она не содержит ее. Также, если вы заинтересованы в регулярном выражении Unicode: http://xregexp.com/plugins/
- Если да, то сделать запрос ajax на ваш бэкэнд
- Бэкэнд получает URL-адрес, отправленный с запросом ajax, и загружает URL-адрес либо с решением, которое дал вам Flave, либо, и возвращает, является ли URL-адрес отзывчивым:
PHP:
$url = $_POST["url"];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
if(strlen($output)){
return json_encode(array("is_valid" => true, "value" => $url));
}else{
return json_encode(array("is_valid" => false, "value" => $url));
}
Примечание. Код нуждается в проверке данных, отправленных по запросу ajax.