Проблемы с выполнением пакетного запроса в SPFx - PullRequest
0 голосов
/ 24 апреля 2018

Приветствия, ребята и девочки.

Возникли проблемы с пакетными запросами $ к SP от SPFx.

Краткая справка: структура SP имеет одно семейство сайтов с большим количеством дочерних сайтов.У каждого дочернего сайта есть список, имя которого идентично на всех дочерних сайтах.Мне нужно получить доступ ко всем этим спискам.

Обычный вызов SPHttpClient дает мне URL всех сайтов.Все идет нормально.

Тогда планировалось $ batch вызовов, чтобы получить данные из списков.К сожалению, я получаю ответ только по одному из звонков.Остальные пакетные вызовы дают мне «InvalidClientQueryException».Если я изменяю порядок вызовов, кажется, что только первый вызов завершается успешно.

const spBatchCreationOptions: ISPHttpClientBatchCreationOptions = {
     webUrl: absoluteUrl
};

const spBatch: SPHttpClientBatch = spHttpClient.beginBatch(spBatchCreationOptions);

// Add three calls to the batch
const dan1 = spBatch.get("<endpoint1>",SPHttpClientBatch.configurations.v1);
const dan2 = spBatch.get("<endpoint2>",SPHttpClientBatch.configurations.v1);
const dan3 = spBatch.get("<endpoint3>",SPHttpClientBatch.configurations.v1);

// Execute the batch
       spBatch.execute().then(() => {

            dan1.then((res1) => {
                return res1.json().then((res10) => {
                    console.log(res10);
                });
            });

            dan2.then((res2) => {
                return res2.json().then((res20) => {
                    console.log(res20);
                });
            });

            dan3.then((res3) => {
                return res3.json().then((res30) => {
                    console.log(res30);
                });
            });
 });

Так что в этом случае только вызов dan1 будет успешным.Однако, если я изменю call2 на конечную точку, идентичную первому, они оба будут успешными.

Я не могу действительно обернуть голову вокруг этого, поэтому, если у кого-то есть какой-либо вклад, это будет очень цениться.// Dan

1 Ответ

0 голосов
/ 17 сентября 2018

Убедитесь, что ваша конечная точка всегда одна и та же для каждой партии. Вы не можете смешивать разные сайты в одной партии. В этом случае будут успешны только первые вызовы с одного и того же сайта. Чтобы преодолеть это, вы можете переключиться на поисковый вызов, если хотите получить информацию (что вы можете сделать по одному и тому же URL сайта). См. Мой blogpost по этому вопросу для получения дополнительной информации.

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