javascript — становится неопределенным при чтении POST из AJAX

Если это повторный пост уже существующего. Я посмотрел кучу разных выпусков, уже опубликованных по этому поводу, но не нашел ничего подходящего моей проблеме. Если есть, пожалуйста, свяжите это.

Я пытаюсь изучить AJAX и получить форму, которая принимает два ввода: serverName и isLive. А также кнопка для добавления сервера в список. Я уже создал файл json с двумя серверами, и когда я получаю от него информацию для обновления списка, он перечисляет serverName и isLive в порядке. Когда я перехожу к информации POST, все, что я получаю при обновлении списка, не определено.

Используя консольные журналы, я знаю, что информация передается из формы в Object для отправки AJAX и что она запускает функцию успеха, но когда я смотрю, в Json ничего не добавляется, и в нем говорится, что поля не определены.

index.php

<!DOCTYPE html>
<html>
<head>
<title>Ajax</title>
</head>
<body>
<h1>Server List</h1>
<ul id="servers">
</ul>
<h4>Add a Server</h4>
<p>Server Name: <input type="text" id="serverName"></p>
<p>Offline or Online: <input type="text" id="isLive"></p>
<button id="add-server">Add!</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="main.js"></script>
</body>
</html>

main.js

$(function() {
var $servers = $('#servers');
var $serverName = $('#serverName');
var $isLive = $('#isLive');
$.ajax({
type : 'GET',
url: 'servers.json',
success: function(servers) {
$.each(servers, function(i, server) {
$servers.append('<li>Server: '+ server.serverName +', Status: '+server.isLive+'<li>');
});
},
error: function() {
alert('Error loading server status!');
}
});

$('#add-server').on('click', function() {
var server = {
serverName: $serverName.val(),
isLive: $isLive.val(),
};
console.log(server);
$.ajax({
type: 'POST',
url: 'servers.json',
data: server,
success: function(newServer) {
$servers.append('<li>Server: '+ newServer.serverName +', Status: '+newServer.isLive+'<li>');
},
error: function(){
alert('error saving server');
}
});
});
});

servers.json

[{"serverName":"vanilla","isLive":"offline"}, {"serverName":"SkyFactory","isLive":"Online"}]

0

Решение

Вы не можете изменить файл на сервере с помощью JavaScript. Проверьте это может помочь:
Используйте JQuery для изменения внешнего файла JS

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector