在页面加载时POST到Web服务

时间:2017-12-24 18:01:16

标签: javascript jquery ajax

我正在尝试在页面加载时将一些数据发送到Web服务,然后允许页面继续照常工作。我们的想法是在没有用户交互的情况下从页面加载时从客户端获取一些数据,然后让用户继续正常使用页面。

我正在使用XMLHttpRequest,当我想在没有刷新页面的情况下对Web服务进行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>

现在,当我点击发送信息按钮时会发送数据,但我需要在没有用户交互的情况下发送数据,而无需刷新页面并在此之后允许任何其他逻辑。我试过window.onload没有成功。

请原谅我糟糕的编程技巧,我不是那么精通Javascript。

2 个答案:

答案 0 :(得分:4)

你应该能够删除&#34;提交&#34;因此,当&#34;文档准备就绪时,您的代码就会运行。事件被称为。此外,如果您使用jquery,您可以使用其ajax函数来简化http调用:

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

答案 1 :(得分:0)

目前您正在submit表单上发送数据。因此,您需要在ajax此处为示例

之后立即使用$(document).ready(function()来电
     $(document).ready(function()({
myvar = somedata;
 $.ajax({
          url: "test.html",
          type: "Post",
          data: {myvar : myvar},
          success: function(response){
            //do anything here
          }
        });
});