1

我正在尝试使用 Azure 函数代理在我无权访问服务器的 API 上允许 CORS。

我已按照本文中的步骤进行操作

我有路由模板/qless/{*rest}和后端 URL,https://merchant.us1.qless.com/qless/api/v1/{rest}但是我收到的响应是: 400 (Invalid URI: noSlash).

如果我改用 Github API(就像他们在文章中所做的那样),它工作正常。

我已确保 localhost(我从中发送请求)列在函数的 CORS 设置中。

我发送的完整请求是:https://XXXXXXXXX.azurewebsites.net/qless/kiosk/location/XXXXXXXX/queues/所以我看不到额外的斜线来自哪里(如响应所示)。我试过删除尾随和中间斜杠。感谢你的协助。

编辑

通过发送Proxy-Trace-Enabled标头,我意识到该函数正在重写/%2F- 我该如何防止这种情况?

      {
        "source": "rewrite-uri",
        "timestamp": "2020-02-27T05:04:28.8777839Z",
        "elapsed": "00:00:00.2596935",
        "data": {
          "message": "Updated request URL per specified rewrite template.",
          "request": {
            "url": "https://merchant.us1.qless.com/qless/api/v1/kiosk%2Flocations%2FXXXXXXXXXX/"
          }
        }
      }
4

1 回答 1

1

在这个问题中找到了解决方案

设置AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES为应用程序设置true(默认为 false),此处记录

于 2020-02-27T05:24:12.100 回答