Directline对于Azure Bot Services没有响应,并被CORS策略阻止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Directline对于Azure Bot Services没有响应,并被CORS策略阻止相关的知识,希望对你有一定的参考价值。

我已经使用Microsoft Sample for Bot Services的Bot Services sample

我调试后,网页未显示任何内容。这是我的源代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Web Chat: Minimal bundle with Markdown</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat-minimal.js"></script>

    <style>
      html,
      body 
        height: 100%;
      
      body 
        margin: 0;
      
      #webchat 
        height: 100%;
        width: 100%;
      
    </style>
</head>
<body>
<div id="webchat" role="main"></div>
    <script>
      (async function() 
         const res = await fetch('https://csharpbotdw.azurewebsites.net/directline/token',  method: 'POST' );
        const  token  = await res.json();
        const markdownIt = window.markdownit();
        window.WebChat.renderWebChat(
          
                directLine: window.WebChat.createDirectLine( token )

          ,
          document.getElementById('webchat')
        );
        document.querySelector('#webchat > *').focus();
      )().catch(err => console.error(err));
    </script>
</body>
</html>

我只看到错误提示

Access to fetch at 'https://csharpbotdw.azurewebsites.net/directline/token' from origin 'http://localhost:63191' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. [http://localhost:63191/Test13122019]
答案

您必须在运行csharpbotdw服务的应用程序服务的CORS菜单中的批准来源列表中添加呼叫域。

另一答案

显然,您的Azure应用服务在托管代码的Azure应用服务的CORS设置中未正确配置CORS。我通过详细的步骤here解决了类似的问题,请尝试一下是否对您有帮助。

以上是关于Directline对于Azure Bot Services没有响应,并被CORS策略阻止的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure 或 App Studio 将 Bot 部署到 MS Teams?

Bot c# 回退到模拟 OAuth 令牌 + directline/conversations/<conversationId>/activities

如何向 Azure Bot 发送短信?

Microsoft bot 框架 - Bot 频道注册。无法将录制的视频从 Skype 保存到 Azure 存储帐户

Microsoft Bot Framework - 如何将数据从 Azure 数据库获取到我的 Bot 项目?

如何将Azure Bot与SharePoint链接?