2017-01-18 13 views
0

이것이 이미 존재하는 게시물 인 경우. 나는 이것에 관해 이미 게시 된 다른 쟁점의 무리를 보았지만 어떤 것도 나의 문제와 일치하지 않는다고 느꼈다. 링크가 있으면 링크하십시오.AJAX에서 POST를 다시 읽을 때 정의되지 않음 받기

나는 AJAX를 배우려고 노력 중이며 serverName과 isLive의 두 입력을받는 양식이있다. 서버를 목록에 추가하는 단추는 물론입니다. 나는 이미 두 개의 서버가있는 json 파일을 만들었고 목록을 업데이트하기 위해 정보를 얻었을 때 서버의 serverName과 isLive를 나열합니다. POST 정보로 이동하면 목록이 업데이트 될 때 되돌아옵니다.

콘솔 로그를 사용하면 정보가 폼에서 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'); 
      } 
     }); 
    }); 
}); 

당신은 자바 스크립트를 사용하여 서버에서 파일을 수정할 수 없습니다

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

답변