通过邮件发送html表单到webservice

时间:2012-07-31 09:14:02

标签: forms html5 post

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

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

我有两个问题:

  1. 我如何命名表单字段?如果我尝试发送userName,我认为我必须将此测试作为ID放在将保留该值的字段中。
  2. 这是因为我很好奇。哪个是发送到Web服务的帖子消息内容?
  3. 这是我发现在互联网上搜索的一个例子:

     <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服务上处理它们时获取这些值,不是吗?

3 个答案:

答案 0 :(得分: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
    }
});

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

答案 1 :(得分:0)

每个网络服务都应该提供类似WSDL的内容,通常包含您可以使用的可用字段和方法的规范。如果您要连接的网络服务具有网址webservice.com而不是webservice.com/wsdl来获取WSDL

检查此主题:click

答案 2 :(得分:0)

属性“name”是为了将该参数传递给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");