从 Javascript 调用 Azure 函数

Call Azure Function from Javascript

我有一个简单的 HTML 页面,其中有一个文本框和一个提交按钮。我有一个 Azure Function,它在点击时接收文本框的内容,我们应该将其发送到 Azure Function 并发送邮件(代码是用 C# 中的 Azure Function 编写的)。

我做了什么:

我获取了文本框值并通过 AJAX 调用了函数,但它根本没有命中。它发回 400 错误代码。

我只想使用 Javascript 来点击函数。因为我只有一个普通的 HTML 页面,而 JS 是我唯一可以交流的方式。

这是函数 URL

https://smtpgmail.azurewebsites.net/api/HttpTriggerCSharp1?code=ihrbDCeo2DPdxPXDKiQWyNFYfaMFZhk9rkaYFaHO3LFsNEmrabj9Cw==

它需要一个参数 'name',我通过像这样在浏览器中粘贴来检查它

https://smtpgmail.azurewebsites.net/api/HttpTriggerCSharp1?code=ihrbDCeo2DPdxPXDKiQWyNFYfaMFZhk9rkaYFaHO3LFsNEmrabj9Cw==&name=testName

这是我在 firefox 中找到的

如果您需要更多信息,请告诉我

看起来跨源请求被阻止了。通常你不能从浏览器向不同的主机发出请求。您将需要使用 CORS 或后端代码。

请注意,请求的方法是 OPTIONS 而不是 Post 或 Get。通常这意味着浏览器正在阻止调用。

这里是一个 link 的 Node 解决方案。 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook

这绝对是一个 CORS 相关的问题。幸运的是,在门户中为 Function Apps 配置 CORS 很容易。只需导航至您的 Function App,然后 select 平台功能:

Select API 下的 CORS 选项,它会将您带到一个屏幕,您可以在其中添加客户端应用程序的主机名: