3

我对 HTML5 开发非常陌生,这个问题可能非常愚蠢,但我已经找到了答案(或者我搜索得很好)。

我想通过 post 将表单发送到 Web 服务(我不想在 URL 中显示所有字段)。

我有两个问题:

  1. 我必须如何命名表单字段?如果我尝试发送一个userName我认为我必须将此测试作为 ID 放入将保存该值的字段。
  2. 这是因为我很好奇。发送到 Web 服务的 post 消息内容是什么?

这是我在互联网上找到的一个例子:

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM

我想我需要这些 id 来获取这些值,同时在 Web 服务上处理它们,不是吗?

4

3 回答 3

2

这取决于,您可以通过重定向向页面发布帖子(在 .NET 中您可以这样处理):

<form action="http://myurl/postpage.ashx" method="post">
    <input name="forename" />
    <input name="surname" />
    <input type="submit" value="Submit" />
</form>

然后在postpage.ashx的服务器端脚本中使用:

string forename = Request["forename"];
string surname = Request["surname"];

您还可以使用 jQuery 使用以下命令对同一页面进行 ajax 调用:

var forename = $("input[name=\"forename\"]").val();
var surname = $("input[name=\"surname\"]").val();

$.ajax({
    url: "http://myurl/postpage.ashx",
    type: "POST",
    async: true, // set to false if you don't mind the page pausing while waiting for response
    cache: false,
    dataType: "json",
    data: "{ 'forename': '" + forename + "', 'surname': '" + surname + "' }",
    contentType: "application/json; charset=utf-8",
    success: function(data) {
        // handle your successful response here
    },
    error: function(xhr, ajaxOptions, thrownError) {
        // handle your fail response here
    }
});

您将以相同的方式处理服务器端代码中的帖子。这里要注意的关键是,无论您作为输入元素的名称属性输入什么,都会作为键/值对发布到您的接收 URL。

于 2012-07-31T09:25:09.410 回答
0

每个 Web 服务都应该为您提供类似于WSDL的东西,它通常包含您可以使用的可用字段和方法的规范。如果您要连接的 web 服务有 url ,则webservice.com尝试webservice.com/wsdl获取WSDL

检查此主题:单击

于 2012-07-31T09:17:24.133 回答
0

属性“名称”是唯一的,以便将该参数传递给 Servlet(或任何地方)。然后 post 方法对消息进行加密并将其发送到 Servlet。

<form method="post" action = "LoginServlet">
     Name: <input type="text" name="userName">
     Password: <input type="password" name="password"> 

    <input type="submit" name = "Login" class="button">
</form>

为了访问该数据,您将在 Servlet 中执行以下操作:

String userName = request.getParameter("userName");
于 2012-07-31T09:26:08.970 回答