2017-12-24 11 views
1

페이지로드시 웹 서비스에 일부 데이터를 보내고 페이지를 평소와 같이 계속 사용하려고합니다. 사용자 상호 작용없이 페이지가로드 될 때 클라이언트에서 일부 데이터를 가져 와서 사용자가 페이지를 정상적으로 계속할 수있게하는 것이 아이디어입니다.페이지에서 웹 서비스에 POST로드

저는 XMLHttpRequest를 사용하고 있습니다. 페이지를 새로 고치지 않고 POST를 웹 서비스에 보내고 싶을 때, 이것이 최선의 방법인지는 잘 모릅니다. 여기에 내 현재 테스트 HTML입니다 : 내가 송신-정보 버튼을 클릭하면

<html> 
<body> 
    <form name="myform2" method="post" action="./login.asp"> 
     First Name: <input type="text" name="fname" /><br><br> 
     Last Name : <input type="text" name="lname" /> 
     <input type="submit" value="Submit" /> 
    </form> 


<form action="" id="myform"> 
    <input type="submit" value="send-info"/> 
</form> 

<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script> 
<script type="text/JavaScript"> 

$(document).ready(function() { 
    $(document).on('submit', '#myform', function() { 
     var http = new XMLHttpRequest(); 

     var params = ("myvar=somedata"); 
     http.open("POST", "http://127.0.0.1:3000", true); 

     http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

     http.send(params); 
     return false; 
    }); 
}); 
</script> 

</body> 
</html> 

오른쪽 이제 데이터를 전송하지만 페이지를 새로 고침 추가 로직이 후 필요한 무엇이든 허용하지 않고, 사용자 상호 작용없이 보낼 필요 그. 나는 창문으로 노력했다. 성공하지 못한 채로.

불쌍한 프로그래밍 기술을 용서해주십시오. 나는 자바에 정통하지 않습니다.

답변

3

"준비 완료"이벤트가 호출되면 코드가 실행되도록 "제출시"를 제거 할 수 있어야합니다. 당신이 jQuery를 사용하고 또한 경우는 HTTP 호출을 단순화하기 위해 아약스 기능을 사용할 수 있습니다

$(document).ready(function() { 
    $.ajax({ 
    type: "POST", 
    url: "http://127.0.0.1:3000", 
    data: { "myvar" : "somedata" } 
    }); 
}); 
+0

감사합니다. 나는 두 가지 버전을 만들었는데 하나는 아약스와 하나는 그것없이. –

+0

쿨 마인드 마인을 정답으로 표시 하시겠습니까? :) –

0

을 지금 당신이 submit 양식에 데이터를 전송한다. 그래서 당신은 바로 $(document).ready(function()ajax 전화를 사용해야하는 것은 여기에 내가없는 것이었다 "에 제출"제거, 샘플을

 $(document).ready(function()({ 
myvar = somedata; 
$.ajax({ 
      url: "test.html", 
      type: "Post", 
      data: {myvar : myvar}, 
      success: function(response){ 
      //do anything here 
      } 
     }); 
});