Как проверить, существует ли URL-адрес с помощью javascript

#javascript #html #google-chrome

#javascript #HTML #google-chrome

Вопрос:

Мне нужно проверить, существует ли URL-адрес, и перенаправить пользователя, если это не так, мы поддерживаем различные браузеры (IE, Chrome, Firefox и т. Д.), Поэтому решение должно поддерживать все из них.

Комментарии:

1. I need to check if a path exists Что это значит? Путь к файлу? URL-адрес?

2. Мне нужно проверить, существует ли URL-адрес

Ответ №1:

В заголовке вашей страницы поместите этот код javascript:

         <script type="text/javascript">
    
        // Creates an object which can read files from the server
        var reader = new XMLHttpRequest();
        
        var checkFor = "fileToCheckFor.html";
        
        // Opens the file and specifies the method (get)
        // Asynchronous is true
        reader.open('get', checkFor, true);
                    
        //check each time the ready state changes
        //to see if the object is ready
        reader.onreadystatechange = checkReadyState;
        
        function checkReadyState() {
        
            if (reader.readyState === 4) {
                
                //check to see whether request for the file failed or succeeded
                if ((reader.status == 200) || (reader.status == 0)) {
                
                //page exists -- redirect to the checked
                //checked for page
                document.location.href = checkFor;
                
                }
                else {
                
                //does nothing and quits the function
                //if the url does not exist
                return;
                
                }
            
            }//end of if (reader.readyState === 4)
        
        }// end of checkReadyState()
        
        // Sends the request for the file data to the server
        // Use null for "get" mode
        reader.send(null);

    </script>
  

Это позволяет вам проверить, существует ли страница на вашем сервере, и перенаправить на нее, если она существует. Если страница не существует, код javascript ничего не делает и позволяет текущей странице загружаться.

Редактировать: исправлены ошибки и переписана часть кода для ясности, внешнего вида и практичности.

Комментарии:

1. возможно, я неправильно объяснил себя, у меня есть клиенты, получающие доступ к моему веб-сайту, я хочу перенаправить в другое место на моем сервере (т. Е. .. MyOtherFolderindex.html ) но сначала я хочу убедиться, что это относительное местоположение URL существует, если оно существует, я хочу перенаправить их в это местоположение, в противном случае на местоположение по умолчанию.

2. к сожалению, я никогда не получаю readystate == 4, у меня есть частичный URL-адрес, который существует на самом деле.

3. Какое местоположение файла вы пытаетесь проверить? Пожалуйста, покажите каталоги и все.

4. Я использую относительный путь, такой как ‘..Mobileindex.html ‘

5. Не похоже. В основном из-за предотвращения междоменной атаки скриптов.