Javascript 使用web API在CRM中添加新记录
我试图使用Javascript将记录添加到CRM,但得到: 401未经授权的错误 我的问题是如何获取令牌并在JavaScript函数中使用它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
$(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