Javascript проверить, доступен ли URL сайта - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь найти лучший jquery метод, чтобы проверить, доступен ли URL сайта. Все, что мне нужно сделать, это подтвердить, что пользователь может получить доступ к сайту. Тем не менее, с CORS я не совсем уверен, что лучший способ сделать это. Я пытался это, но столкнулся с проблемами.

  $.ajax({
    type: 'HEAD',
    url: url,
    success: function(){
      callback(true);
    },
    error: function() {
      callback(false);
    }
  });

Но я получаю следующую ошибку:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://my-site.com. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Какой лучший способ сделать это sh это?

Спасибо!

Ответы [ 3 ]

1 голос
/ 19 апреля 2020

Из-за ограничений перекрестного происхождения вы не сможете сделать это на стороне клиента. У вас должна быть какая-то служба, работающая на стороне сервера.

0 голосов
/ 19 апреля 2020

вы можете использовать`

function UrlExists(url, cb){
            jQuery.ajax({
                url:      url,
                dataType: 'text',
                type:     'GET',
                complete:  function(xhr){
                    if(typeof cb === 'function')
                       cb.apply(this, [xhr.status]);
                }
            });
        }

        UrlExists('-- Insert Url Here --', function(status) {
            if(status === 200) {
                -- Execute code if successful --
            } else if(status === 404) {
                -- Execute code if not successful --
            }else{
               -- Execute code if status doesn't match above --
            }
        });
0 голосов
/ 19 апреля 2020

Вы можете попытаться добавить свойство crossDomain со значением true, а также инициализировать поддержку cors по true.

$.support.cors = true;

$.ajax({
    type: 'HEAD',
    url: url,
    crossDomain: true,
    succees: function(){
      callback(true);
    },
    error: function() {
      callback(false);
    }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...