2

我已经尝试使用此代码向特定 IP 发送一些信息。该IP是充当服务器的微控制器。

但是,它将信息发送到以该 IP 命名的页面而不是该 IP。

代码是用 JavaScript 编写的。我应该怎么做?使用 post 方法或 Xmlhttprequest 以及如何做到这一点。我认为我的代码很简单:

<!DOCTYPE html>
<html>
<head>
<script>
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
}
</script>
</head>

<body>
<form name="myForm" action="192.168.1.250" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>
</body>

</html>
4

2 回答 2

1

您需要包含协议

action="http://192.168.1.250"
于 2013-03-09T12:29:39.420 回答
0

如果您也想将用户发送到该 IP,那么您将使用 POST。如果实际上您想保持在同一页面上,请发送信息 - 反之亦然,那么 AJAX 调用确实是最足够的。下面我使用 vanilla JavaScript 而不是任何 JavaScript 库,尽管使用 jQuery 会为您提供一些回调/帮助程序以使您的代码更稳定。

jsfiddle:http: //jsfiddle.net/atjBQ/3/

<script>
    /** 
     * Validate Form, else, Send Ajax
    **/
    function validateform() {
       var x = document.forms["myForm"]["fname"].value;
        if ( x == null || x == "" ) { 
            alert( "First Name must be filled out" );  
            return false;
        }

        /** 
         * If POST
         *   use: xmlhttp.setRequestHeader(
         *           "Content-type", 
         *           "application/x-www-form-urlencoded"
         *           );
        **/
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "http://192.168.1.250?q=" + x, true);
        xmlhttp.send();
        return false;
    }
</script>

<form name="myForm" id="myformtosend">
    <label for="fname">First name:</label><input type="text" name="fname" />
    <input type="submit" value="Submit" />
</form>

使用 jQuery

/** 
 * Snippet Reference to: 
 * http://api.jquery.com/jQuery.post/   
**/

<script>
   $.ajax({
     type: "POST",
     url: "http://192.168.1.250",
     data: data,
     success: function() {
        /** Some Code **/
     }   
   });
</script>
于 2013-03-09T13:38:59.643 回答