ajax функция не работает в моей JavaScript функция пропустить ajax - PullRequest
1 голос
/ 07 февраля 2020

возврат без выполнения функции ajax

function weekData(){
    var weekCount={};

 $.ajax({
         url:"http://localhost:8080/getWeeeks",
         headers: {
         'Content-Type': 'application/x-www-form-urlencoded'
     },
     type:"GET",
         dataType:"json",
         data:{},

         success:function(data){

             for (var i = 0; i < data.length; i++) {
             weekCount[i]=data[i];

             }   
             debugger
             return weekCount;       

         },

     });

     return weekCount ;            
    }
var circle = weekData();

Ответы [ 3 ]

1 голос
/ 07 февраля 2020

Вам необходимо добавить метод error вместе с запросом на проверку на стороне сервера, чтобы убедиться, что ваш ajax вызов работает нормально.

error: function (request, status, error) {
    alert(request.responseText);
}


Обновлено

Существует множество способов получить результат из ajax response

  1. Использование async: false для создания ajax ответ в син c, как показано ниже
   $.ajax({
         url:"http://localhost:8080/getWeeeks",
         headers: {
         'Content-Type': 'application/x-www-form-urlencoded'
         },
         async: false // This setting make ajax response in sync.
         ...
// Note that: It's not a good approach because of its deprecation and stuck the page untill the request comes back.
Вернуть обещание, затем манипулировать выполненной функцией
function weekData() {
    return $.ajax({
        url: "http://localhost:8080/getWeeeks",
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        type: "GET",
        dataType: "json",
        data: {}
    });
}

var weekCount = [];
weekData().done(function(data) {
    for (var i = 0; i < data.length; i++) {
        weekCount[i] = data[i];
    }
});
Использование callback function
0 голосов
/ 08 февраля 2020

РЕШЕНИЕ:

Ajax вызовы асинхронны по своей природе и по умолчанию имеют значение true.

Для этого могут работать два подхода:

Первое использование функции Shorthand Ajax и сохранение результата в weekCount

 var weekCount = $.get( "ttp://localhost:8080/getWeeeks", function( data ) {
  return data.your-object-name;
});

Второй вариант

Использование функции setTimeOut() для обеспечения запроса завершено.

, затем обратный вызов для сохранения ответа в weekCount ;

0 голосов
/ 07 февраля 2020

Удалить объект данных из ajax вызова. Нет необходимости отправлять какой-либо объект данных, когда тип метода «GET».

data:{}

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