HTML表单通过GET而不是POST发送数据

时间:2014-01-21 11:14:54

标签: html post get

这很奇怪,但我的HTML表单通过GET发送数据,而不是POST。

    <form name="mistake" action="http://web-server.com:8888/WebApp/Email/Create" method=post>
  <input type="text" name="url" size="50" readonly="readonly">
          <br />
          <span class="text">
          Error :
          </span>
          <br /> 
          <textarea rows="5" name="mis" cols="37" readonly="readonly"></textarea> 
          <br />
          <span class="text">
          Comment :
          </span>
          <br /> 
          <textarea rows="5" name="comment" cols="37"></textarea> 

          <input type="hidden" name="email" value="admin@admin.com">
          <input type="hidden" name="subject" value="Errors">
          <div style="margin-top: 7px"><input type="submit" value="Submit">
          <input onclick="hide()" type="button" value="Close" id="close" name="close"> 
          </div>
</form> 

我使用标准选项在IE10上测试它 HTML表单非常简单,我只写了很少的代码示例。
怎么解决?
谢谢!

P.S。更改网址。此网址web-server.com:8888/WebApp/Email/Create - 属于asp mvc app。

当我在本地机器上运行我的网络应用程序和静态网站时,它可以运行。 但是当我在本地机器上运行静态页面 - 而在服务器上运行mvc时 - 它不起作用。

P.P.S.-这种形式的变体 - 起源(我剪了一些标签)。现在它起源于。

我不知道为什么,但它有效。可能是 - 服务器端的问题?

7 个答案:

答案 0 :(得分:12)

问题相当普遍,答案难以捉摸:

您的代码中某处有孤儿<form>。这意味着下一个表单嵌套在前一个表单中,并忽略其方法。删除或关闭多余的<form>,您就完成了。

答案 1 :(得分:5)

它应该是一个帖子(假设您仅在您的示例中忘记了结束标记)。我添加了您的代码并将结束标记放在html文件中并在Chrome中提交。这就是我在网络跟踪中看到的:

enter image description here

如果您正在做同样的事情,请查看this question

答案 2 :(得分:2)

我正在使用的Web应用程序框架会自动将操作URL的POST请求重定向到带有斜杠的同一URL。 HTTP重定向将POST降级为GET。

答案 3 :(得分:0)

尝试 method="post"代替method=post

答案 4 :(得分:0)

我在这里遇到过同样的问题:  当一个表单嵌套在另一个表单中时,问题首先出现,并忽略其方法。

解决方案非常简单: 删除或关闭多余的,你很高兴。

答案 5 :(得分:0)

This post帮助我解决了导致问题的原因。

如果IIS管理器重定向URL,它将POST请求更改为GET请求。 我必须将服务器更改为重写网址,而不是重定向

我还必须在IIS管理器中启用应用程序请求路由。 我遵循了this post中的说明。

答案 6 :(得分:-1)

可能只是您的用户代理忽略了表单方法,因为您没有在属性周围添加引号。

尝试:

 <form name="mistake" action="http://web-server:8888/WebApp/Email/Create" method="post">
相关问题