繁体   English   中英

使用 Web API 在 CRM 中添加新记录

[英]add new record in CRM using web API

我正在尝试使用 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);
      }
    });
  });
});

您需要在 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);
      }
    });
  });
});

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM