【问题标题】:add new record in CRM using web API使用 Web API 在 CRM 中添加新记录
【发布时间】:2019-03-24 12:58:50
【问题描述】:

我正在尝试使用 Javascript 将记录添加到 CRM 但得到:

401 未经授权的错误。

我的问题是如何获取令牌并在 JavaScript 函数中使用它。

$(document).ready(function() {
  $("#Save").click(function() {
    var ProductDetails = new Object();
    ProductDetails.ProductName = $("#txt_productName").val();
    ProductDetails.ProductDetail = $("#txt_desc").val();

    $.ajax({
      url: "https://mycrm.dynamics.com/api/data/v9.1/Products",
      type: "Post",
      dataType: 'JSON',
      data: ProductDetails,
      contentType: 'application/x-www-form-urlencoded',
      success: function(data) {
        alert('Updated Successfully');

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

【问题讨论】:

    标签: javascript c# asp.net asp.net-mvc dynamics-crm


    【解决方案1】:

    您需要在 Http Header 中添加授权信息。这是一个使用 JWT 的示例。

    $(document).ready(function() {
      $("#Save").click(function() {
        var ProductDetails = new Object();
        ProductDetails.ProductName = $("#txt_productName").val();
        ProductDetails.ProductDetail = $("#txt_desc").val();
    
        $.ajax({
          url: "https://mycrm.dynamics.com/api/data/v9.1/Products",
          type: "Post",
          headers: {
            'Accept':'application/json',
            'Content-Type':'application/json',
            'Authorization':'Bearer your token here'
         },
          dataType: 'JSON',
          data: ProductDetails,
          contentType: 'application/x-www-form-urlencoded',
          success: function(data) {
            alert('Updated Successfully');
    
          },
          error: function(request, status, error) {
            alert(request.status);
          }
        });
      });
    });
    

    【讨论】:

    • 我正在使用 Azure Active Directory
    【解决方案2】:

    您必须像这样添加带有不记名令牌的标头:

    $.ajax({
    (...)
    headers: {
      "Authorization": "Bearer " + token
    },
    (...)
    

    为了获取令牌,您必须先在 Azure Active Directory 中注册一个应用程序,该应用程序与您的 Dynamics 365 实例位于同一租户中。如果您需要详细的分步指南,请查看此link

    在 AAD 中注册您的应用程序后,您还必须添加一些代码来使用 Azure 进行身份验证并获取令牌。 ADAL.js 为您完成这项工作,但请记住,它会提示用户在 office 365 弹出窗口中手动添加他的用户名和密码。这称为交互式身份验证,据我所知,这是无法避免的。

    有关完整的 HTML + JS 工作示例,请单击 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多