jquery ajax каждый файл существует сетевая ошибка

#jquery #ajax

#jquery #ajax

Вопрос:

Я использую jquery each и проверяю, существует ли файл с помощью вызова ajax. Пожалуйста, взгляните на код.

 $(".documentLbl").each(function(){
            var actionUrl = $("input", this).val(); // url will be like - http://<<IP>>:<<PORT>>/.../fullTextURL/pdf";
            if(actionUrl != null){
                $.ajax({
                type: 'head',
                url: actionUrl,
                data: {},
                async: false,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function() {
                    alert("..success..");
                },
                error: function(xhr, textStatus, errorThrown) {
                    if (textStatus !== null) {
                        alert("error: "   textStatus);
                    } else if (errorThrown !== null) {
                        alert("exception: "   errorThrown.message);
                    }
                    else {
                        alert ("error");
                    }
                }
            });
            }
        });
  

Я могу получить доступ к URL-адресу json при передаче в браузере, получая файл json, но здесь возникает ошибка при использовании jquery ajax как: «Ошибка сети: ошибка внутреннего сервера 500 ….»

Пожалуйста, помогите,

Заранее спасибо…

Отредактировано: я пропустил, чтобы убедиться, что я использую JSON. Обновлено в соответствии с запросом

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

1. Если ошибка сети, перейдите к ошибке

2. Вы пытаетесь выполнить вызов AJAX для внешнего URL? Если это так, это никогда не сработает: en.wikipedia.org/wiki/Same_origin_policy

3. Кроме того, тип данных: ‘script’, работал, но не смог обработать, содержит ли URL какие-либо неопознанные данные.

4. хост также должен точно соответствовать

5. Вы не можете отправить запрос ajax на внешний URL-адрес, если только вы не отправляете запрос на данные JSONP.

Ответ №1:

Я не уверен, решит ли это какую-либо из проблем, но я не думаю, что «HEAD» является допустимым параметром для параметра типа ajax. В документации указано «ОПУБЛИКОВАТЬ» или «ПОЛУЧИТЬ» в качестве допустимых параметров.

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

1. также пробовал с помощью ‘post’ или ‘get’. с типом данных: script теперь я получаю успех, если действительный URL, но если недопустимый URL, то ошибка не блокируется

Ответ №2:

Вместо того, чтобы использовать ошибку в конце вашего вызова Ajax, попробуйте это:

 $("#someDivId").ajaxComplete(function(request, settings){
    if (settings.status===404){
        alert("Sad! It's not available.");
    }
});
  

Или этот:

 $.ajax({
    ...,
    statusCode: {
        404: function() {
            alert('page not found');
        }
    }
});
  

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

1. Теперь лучшее улучшение моего кода, но всегда мои «настройки.статус» равен «200». Даже если URL не удается также получить ‘200’