【问题标题】:Getting CORS error while calling Dynamics 365 Operations JSON-Based custom service using Javascript使用 Javascript 调用 Dynamics 365 Operations 基于 JSON 的自定义服务时出现 CORS 错误
【发布时间】:2018-03-24 10:14:10
【问题描述】:

我正在开发一个简单的 SPA 应用程序并尝试访问 Dynamics 365 for Operations 基于 JSON 的自定义服务。我正在使用 ADAL.js 库进行身份验证。我从This 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();

【问题讨论】:

    标签: office365 axapta dynamics-365 dynamics-365-operations microsoft-dynamics-webapi


    【解决方案1】:

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

    可能你必须添加这个sn-p:

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

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

    JavaScript - XMLHttpRequest, Access-Control-Allow-Origin errors

    【讨论】:

    • 但是,我认为但不确定 CORS 在 Dynamics 365 中是否默认启用?如果它默认不启用,那么启用它的方法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多