Если вы хотите вызвать webhook из статического html через js, я боюсь, что пока это невозможно, поскольку webhook автоматизации Azure в настоящее время не поддерживает CORS. Смотрите голос пользователя здесь .
Но вы можете вызывать функцию Azure из статического html с настроенным CORS . Это мой код сработавшей функции http, использующий c #:
#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string value1 = req.Query["value1"];
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
value1 = value1 ?? data?.value1;
return value1 != null
? (ActionResult)new OkObjectResult($"Hello, {value1}")
: new BadRequestObjectResult("Please pass a value1 on the query string or in the request body");
}
Он ответит вам значением "value1" в вашем html.
Это код для html:
<script>
function sendWebhook() {
var http = new XMLHttpRequest();
var url = '<URL OF YOUR AZURE FUNCTION>';
var content = {"value1" : "test data"};
http.open('POST', url, true);
//Send the proper header information along with the request
http.setRequestHeader('Content-type', 'application/json');
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(JSON.stringify(content));
}
</script>
<input id="contact-submit" type="button" class="btn btn-transparent" value="Submit" onclick="sendWebhook()" />
Перейдем к вашей функции Azure => Возможности платформы => CORS, чтобы включить все Origins с помощью «*», чтобы мы могли проверить локально:
Результат теста:
Как видите, ваши данные value1 были опубликованы,