gpt4 book ai didi

azure - 在 MS Dynamics CRM Online 中使用 Azure 托管的 WebApi

转载 作者:行者123 更新时间:2023-12-03 03:12:31 24 4
gpt4 key购买 nike

我们正在使用 MS Dynamics Crm 2016 Online,我们需要从客户端使用 Azure 托管 WebApi。我们正在尝试使用 ajax 调用获取数据。相同的代码在 MS Dynamics Crm 之外适用于我们,但在 Dynamics Crm 内我们收到访问被拒绝错误。我们已在 webapi 中启用了 CORS,但仍然遇到此问题。看起来这与Dynamics CRM有关,但我们无法找到原因和解决方案。

下面是在 MS Dynamics CRM 之外工作的示例代码

        $.ajax({
url: 'http://myaccountapi.azurewebsites.net/api/Account',
type: 'POST',
data: 'testaccount',
contentType: "application/json",
success: function(data) {
processData(data);

},
error: function (error) {
alert(error.statusText);
}
});

但同样的代码 CRM 中抛出错误,显示:访问被拒绝

最佳答案

因此,您有一个来自 orgName.crmX.dynamics.com 的页面尝试调用 myaccountapi.azurewebsites.net。这不是 CRM 问题。

您正在发出跨站点请求,这可能会导致访问被拒绝消息 - 我猜测,因为您尚未在 WebApi 应用程序中启用 CORS。

您可以在以下位置查看完整示例:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api .

Enable CORS

Now let's enable CORS in the WebService app. First, add the CORS NuGet package. In Visual Studio, from the Tools menu, select Library Package Manager, then select Package Manager Console. In the Package Manager Console window, type the following command:

Install-Package Microsoft.AspNet.WebApi.Cors

This command installs the latest package and updates all dependencies, including the core Web API libraries. User the -Version flag to target a specific version. The CORS package requires Web API 2.0 or later.

Open the file App_Start/WebApiConfig.cs. Add the following code to the WebApiConfig.Register method.

using System.Web.Http;
namespace WebService
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// New code
config.EnableCors();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}

Next, add the [EnableCors] attribute to the TestController class:

using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;

namespace WebService.Controllers
{
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class TestController : ApiController
{
// Controller methods not shown...
}
}

关于azure - 在 MS Dynamics CRM Online 中使用 Azure 托管的 WebApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com