1

我正在开发一个简单的 SPA 应用程序并尝试访问 Dynamics 365 for Operations 基于 JSON 的自定义服务。我正在使用 ADAL.js 库进行身份验证。我从This Dynamics Community 线程中遵循的身份验证方式。

但是机会,在成功获取有效令牌并使用获取的令牌调用我的目标 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();
4

1 回答 1

1

您收到此错误,因为您的 localhost 与服务域冲突。CORS - 跨源资源共享问题。

可能您必须添加此代码段:

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

如果您托管的 SPA 和 Dynamics API 之间出现冲突,则必须解决它。

JavaScript - XMLHttpRequest、Access-Control-Allow-Origin 错误

于 2018-03-24T14:17:51.360 回答