从Javascript调用Azure功能

时间:2017-07-26 16:03:31

标签: azure azure-functions

我有一个简单的HTML页面,其中包含一个文本框和一个提交按钮。我有一个Azure功能,当命中时会接收文本框的内容,我们应该将其发送到Azure功能并发送邮件(代码用C#中的Azure功能编写)。

我做了什么:

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

我想要的就是使用Javascript来实现这个功能。因为我只有一个简单的HTML页面,JS是我可以与之沟通的唯一方式。

这是功能网址

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

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

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

这是我在firefox中找到的

enter image description here

如果您需要更多信息,请与我们联系

2 个答案:

答案 0 :(得分:6)

这绝对是一个与CORS相关的问题。幸运的是,在门户中为功能应用程序配置CORS很容易。只需导航到您的功能应用程序,然后选择平台功能:

enter image description here

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

enter image description here

答案 1 :(得分:3)

这看起来像是阻止了跨源请求。通常,您无法从浏览器向其他主机发出请求。您将需要使用CORS或后端代码。

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

以下是Node解决方案的链接。 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook