Получение ошибки CORS при вызове пользовательской службы Dynamics 365 Operations на основе JSON с использованием Javascript

Я разрабатываю простое приложение SPA и пытаюсь получить доступ к пользовательской службе Dynamics 365 для Operations на основе JSON. Я использую библиотеку ADAL.js для аутентификации. Путь для аутентификации я придерживаюсь в этой теме сообщества Dynamics.

Но, после успешного получения действительного токена и вызова моего целевого API с приобретенным токеном, я не могу вызвать API и получить ошибку CORS.

Скриншот PSB для того же

введите описание изображения здесь

Ниже приведен мой пример кода:

    var req = new XMLHttpRequest()
   req.open("POST", organizationURI + "/api/services/ServiceGroup/Service/Operaton", true);

   //Set Bearer token
    req.setRequestHeader("Authorization", "Bearer " + token);
   req.setRequestHeader("Accept", "application/json");
   req.setRequestHeader("Content-Type", "application/json");

   req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
     req.onreadystatechange = null;
     if (this.status == 200) {
      var empData = JSON.parse(this.response).value;
      console.log(empData);
     }
     else {
      var error = JSON.parse(this.response).error;
      console.log(error.message);
      errorMessage.textContent = error.message;
     }
    }
   };
   req.send();

1 ответ

Вы получаете эту ошибку, потому что ваш локальный хост конфликтует с доменом службы. CORS - проблема совместного использования ресурсов.

Вероятно, вы должны добавить этот фрагмент:

req.setRequestHeader('Access-Control-Allow-Origin', '*');

Тем не менее, если между вашим размещенным SPA & Dynamics API возникает конфликт, нужно его разрешить.

JavaScript - ошибки XMLHttpRequest, Access-Control-Allow-Origin

Другие вопросы по тегам