Angularjs $ http запрос на получение метода отмены - PullRequest
0 голосов
/ 23 апреля 2019

Я звоню из приложения angularjs в веб-сервис Rest.В большинстве случаев просьба отменить.Иногда первый звонок отменяется, а второй отменяется.И иногда это отлично работает.

код:

$http({
    method : 'POST',
    url : 'https://hostname:8080/myapp/api/j/save-file',
    data : {fileName: 'abc.txt'}
}).success(function (data) {
    alert("success");
}).error(function (data) {
    alert("failed: ", data);
});

enter image description here

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Не зная больше о том, что отправляет запрос, веб-сервере, на который вы его отправляете, и т. Д., Мы действительно не можем диагностировать это слишком много. Тем не менее, я могу предложить следующий совет:

  1. HTTP против HTTPS не будет иметь никакой разницы здесь. Если вы отправляете на сайт, который явно использует протокол, который вы не используете, вы либо получите что-то вроде ошибки HTTP 404, либо статуса 301 (перенаправление).
  2. «Идеальный» маршрут также не имеет смысла. Конечно, если вы пытаетесь получить доступ к маршруту по неправильному адресу, он не будет работать, но вы все равно получите 404 (или 500, или что-то еще).
  3. Да, вы можете использовать относительный URL для доступа к материалам на том же сервере, но вы можете также использовать полный абсолютный URL. Здесь нет никакой разницы, и вообще не объясняется, почему ваш запрос отменяется.

Вот тест. Что произойдет, если вы закомментируете каждую другую «вещь» в вашем приложении AngularJS, оставляя только само определение app, определение controller и пытаетесь запустить его таким образом? Это все еще отменяет? Попытайтесь выяснить, в какой момент это отменяет, разбив его на голые предметы первой необходимости.

Если это все еще отменяет, как насчет (насколько я ненавижу его использовать) запроса jQuery $.post(), чтобы выяснить, связана ли эта проблема с AngularJS и как вы его используете ?? Такая же ошибка (с jQuery или AngularJS) возникает в Firefox, Chrome и любых других ваших браузерах?

РЕДАКТИРОВАТЬ:

Я быстро перебрал JS на https://jsfiddle.net/cLu04r1t/1/, используя тот же метод $http, который вы использовали. Выдает ли ваш код ту же ошибку в этом минималистском примере (если вы замените URI, на который я отправляю ваш пример)?

Наконец, взгляните на Что означает статус = отменено для ресурса в Инструментах разработчика Chrome? . Может ли кто-либо из этих быть виновником того, почему ваш запрос AJAX был отменен?

0 голосов
/ 23 апреля 2019
$http({
    method : 'POST',
    url : 'http://localhost:8080/myapp/api/j/save-file',
    data : {fileName: 'abc.txt'}
}).success(function (data) {
    alert("success");
}).error(function (data) {
    alert("failed: ", data);
});

удалите https и разместите HTTP, чтобы решить вашу проблему.

:-) убедитесь, что вы вызвали совершенный API с идеальным маршрутом.

:-) если вы вызываете внутренний API, вы можете /myapp/api/j/save-file.

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