Добавить идентификатор сообщения в AJAX запрос - PullRequest
0 голосов
/ 05 февраля 2020

Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении? Я новичок в AJAX.

Я хочу добавить идентификатор сообщения в этот простой запрос.

Кто-нибудь? Спасибо Мартин

<!DOCTYPE html>
<html>
<body>

<h1>Postback to webhook incl PostID</h1>

<button type="button" onclick="loadDocs()">Postback</button>

<p id="testID"></p>

<script>
function loadDocs() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("testID").innerHTML = this.responseText;
    }
  };
  xhttp.open("POST", "https://hook.integromat.com/h17qasnzptr4lo7cs6br1vmrv28t11ji", true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send("url=POSTIDHERE");
}
</script>

</body>
</html>

1 Ответ

0 голосов
/ 06 февраля 2020

Вот рабочий пример, основанный на том, что было упомянуто в комментариях:

function loadDocs() {
  var element = document.querySelectorAll("[data-elementor-id]")[0];
  var testId = element.dataset.elementorId;

  var URL =
    "https://hook.integromat.com/h17qasnzptr4lo7cs6br1vmrv28t11ji";
  var http = new XMLHttpRequest();
  var params = "url=" + testId;

  http.open("POST", URL, true);
  http.setRequestHeader(
    "Content-Type",
    "application/x-www-form-urlencoded"
  );
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      console.log("success!");
    }
  };
  http.send(params);
}
<h2>Postback to webhook incl PostID</h2>
<button type="button" onclick="loadDocs()">Postback</button>

<!-- This can be any element, but let's assume it's a DIV-->
<div data-elementor-id="228">
  <h2>228</h2>
</div>

Как вы можете видеть, у меня есть элемент (в данном случае div), который имеет атрибут data-elementor-id, который содержит testId, который вы хотите на POST на ваш Webhook.

Я беру этот элемент с помощью document.querySelectorAll("[data-elementor-id]")[0] и извлекаю ID с помощью element.dataset.elementorId, который затем использую для запроса POST с помощью конкатенации строк - "url=" + testId.

Обратите внимание, что document.querySelectorAll возвращает массив - в моем случае на странице есть только один элемент с атрибутом data-elementor-id, поэтому я выбрал первый, поэтому [0]. Если на вашей странице было больше элементов с одним и тем же атрибутом, а первый элемент не был элементом с соответствующим идентификатором, убедитесь, что вы указали правильный индекс, например [2].

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...