jQuery ajax ошибки, если файл не существует, даже если установлен обработчик ошибок - PullRequest
0 голосов
/ 17 февраля 2020

В моем javascript есть следующий код:

ajaxCall() {
 return new Promise(function(resolve, reject) {
   jQuery.ajax({
      async: true
      data: { 
         ajaxCallid: "e4f7b812-579b-a347-11f7-ce660ce79b72", 
         javascript: true 
      },
      dataType: "jsonp",
      timeout: 10000,
      type: "GET",
      url: "https://my.site.url.com/my.json"
      xhrFields: { 
         withCredentials: true 
      }
   }).done(function(data) {
      // ...process the data...
      resolve(data);
   }).fail(function(jqXHR, textStatus) {
     // ... process errors...
     // test the nature of the error, and build an error = {} object
     resolve(error);
   });
 };
}

Я ожидаю, что если я вызову следующую функцию, а файл https://my.site.url.com/my.json не существует, то * Должен быть выполнен обратный вызов 1005 * jquery ajax, и мое Обещание должно разрешиться в объект error, созданный обратным вызовом fail.

Вместо этого срабатывает обратный вызов fail объект error создается и возвращается, но я также получаю сообщение об ошибке в консоли, отправленное jQuery, которое выглядит примерно так:

SyntaxError: ожидаемое выражение, получено '< '
jQuery 6
DOMEval
globalEval
текстовый скрипт
ajaxConvert
done
callback

Мне кажется, несмотря на то, что выдается ошибка, jQuery пытается проанализировать результат, отправленный сервером, как результат JSON (а это не так, если файл не существует, apache выдает html сообщение об ошибке в этом случае).

Если я правильно понял характер этой ошибки, есть ли способ ll jQuery, чтобы не пытаться анализировать результат как json, если возникает какая-либо ошибка и вызывается обратный вызов fail?

Я использую jquery 3.4.1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...