Как передать данные методом Post axios?
Я хочу передать значение в файл telegram.php методом post axios. Вот код:
axios({
method: 'post',
url: 'telegram.php',
data: {
text: "alert"
},
headers: {
'Content-Type': 'application/json; charset=UTF-8'
}
})
.then(function(response){
console.log(response);
})
Но мне передает почему-то разметку файла telegram.php, вместо значения "alert". Что я делаю не так?
<?php
date_default_timezone_set("Europe/Kiev");
$date = date("H:i");
$hour = date("H");
if($_POST["text"]){
if($_POST["text"]=="alert" && $hour>=6 && $hour<22){
$text = "Сообщение1";
}
else if($_POST["text"]=="alert"){
$text = "Сообщение2";
}
else if($_POST["text"]=="no_alert" && $hour>=6 && $hour<22){
$text = "Сообщение3";
}
else if($_POST["text"]=="no_alert"){
$text = "Сообщение4";
}
else if($_POST["text"]=="detonate"){
$text = "Сообщение5";
}
else if($_POST["text"]=="artillery"){
$text = "Сообщение6";
}
else if($_POST["text"]=="no_artillery"){
$text = "Сообщение7";
}
$token = "54**************5qoXN-L4**********u8********YU";
$chat_id = "-10016***5517"; //main
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id1}&parse_mode=html&text={$text}", "r");
if($sendToTelegram){
}
else{
echo "Ошибка!";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<meta name = "viewport" content = "width=device-width">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="./telegram.js"></script>
</head>
<body>
<h2>Сообщение</h2>
<input type="submit" class="alert alert-sirena" id="alert" value="1">
<input type="submit" class="alert alert-no" id="no_alert" value="2">
<input type="submit" class="alert alert-detonate" id="alert-detonate" value="3">
<input type="submit" class="alert alert-artillery" id="alert-artillery" value="4">
<input type="submit" class="alert alert-no_artillery" id="5" value="5">
<style>
body{
font-family: "Arial", sans-serif;
display: flex;
flex-direction: column;
padding: 0 10px;
height: 100vh;
justify-content: center;
}
h2{
text-align: center;
}
input{
height: 80px;
border: 0;
border-radius: 5px;
background-color: green;
color: white;
margin-bottom: 25px;
font-weight: 700;
cursor: pointer;
}
input:last-child{
margin-bottom: 0;
}
.alert-sirena,.alert-detonate,.alert-artillery{
background-color: red;
}
</style>
<script type="text/javascript" charset="utf-8">
document.addEventListener("click", function(e){
let Confirm_text;
if(e.target.classList.contains("alert")){
Confirm_text = confirm("Подтвердить");
if(Confirm_text){
let value = e.target.getAttribute("id");
let formData = new FormData();
formData.append("text", value);
var Xhr = new XMLHttpRequest();
Xhr.open("POST", "./telegram.php");
Xhr.send(formData);
}
}
});
</script>
</body>
Ответы (1 шт):
Автор решения: Pr0gramm1st
→ Ссылка
Чтобы в ответе получить "alert" надо вернуть (return) либо вывести (echo) данный ответ в вашем PHP-скрипте, например, вот так:
if($sendToTelegram) {
return json_encode($_POST["text"]);
}