【问题标题】:How to use CORS in javascript to get response from Dialogflow (Api.Ai)如何在 javascript 中使用 CORS 从 Dialogflow (Api.Ai) 获取响应
【发布时间】:2018-10-13 05:52:41
【问题描述】:

自从我尝试使用 javascript 连接 api.ai 的最后几个小时以来,我收到以下错误。

“加载 https://api.api.ai/v1/query?v=20150910 失败:请求的资源上不存在‘Access-Control-Allow-Origin’标头。”

我尝试通过以下方式使用 javascript 向 Api.AI 发送请求:-

const 客户端 = 新的 ApiAi.ApiAiClient({ 访问令牌:“*******************” }); 常量承诺 = client.textRequest(query); 承诺 .then(handleResponse) .catch(handleError);

函数句柄响应(服务器响应){}

【问题讨论】:

    标签: javascript angularjs google-api dialogflow-es


    【解决方案1】:

    您可以使用浏览器扩展来解决这个问题。 In chrome 如果您使用 PostMan 或除浏览器以外的其他服务,则不会看到此错误,或者您可以使用 nginx 代理获取结果。

    【讨论】:

    • 不要一直打开这个扩展。这种扩展只能用于开发目的。如果您不确定 CORS 是什么,请不要使用它。
    【解决方案2】:

    我也从几个小时开始面临这个问题,看起来 DialogFlow 的人已经改变了 CORS 限制。

    目前,唯一的解决方案是使用中间的proxy server / cloud function,它将代表浏览器调用api.ai url并将结果发送回浏览器。

    找到问题并回答here

    【讨论】:

      【解决方案3】:

      我猜你是从浏览器调用 API。这不是一个很好的选择,因为任何人都可以看到您的访问代码。

      您可以尝试以下解决方案:

      1. 从后端调用 API,而不是前端。
      2. 使用 fetch API 并禁用 CORS。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-15
        • 2019-01-21
        • 1970-01-01
        • 2018-02-06
        • 2019-01-29
        • 2021-05-06
        • 2016-01-25
        • 2019-11-21
        相关资源
        最近更新 更多