Javascript 使用web API在CRM中添加新记录

Javascript 使用web API在CRM中添加新记录,javascript,c#,asp.net,asp.net-mvc,dynamics-crm,Javascript,C#,Asp.net,Asp.net Mvc,Dynamics Crm,我试图使用Javascript将记录添加到CRM,但得到: 401未经授权的错误 我的问题是如何获取令牌并在JavaScript函数中使用它 $(document).ready(function() { $("#Save").click(function() { var ProductDetails = new Object(); ProductDetails.ProductName = $("#txt_productName").val(); ProductDeta

我试图使用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头中添加授权信息。下面是一个使用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进行身份验证并获取令牌。为您执行此任务,但请记住,它会提示用户在office 365弹出窗口中手动添加用户名和密码。这叫做交互式身份验证,据我所知,这是不可避免的


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

im使用Azure Active Directory