这很奇怪,但我的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.-这种形式的变体 - 起源(我剪了一些标签)。现在它起源于。
我不知道为什么,但它有效。可能是 - 服务器端的问题?
答案 0 :(得分:12)
问题相当普遍,答案难以捉摸:
您的代码中某处有孤儿<form>
。这意味着下一个表单嵌套在前一个表单中,并忽略其方法。删除或关闭多余的<form>
,您就完成了。
答案 1 :(得分:5)
它应该是一个帖子(假设您仅在您的示例中忘记了结束标记)。我添加了您的代码并将结束标记放在html文件中并在Chrome中提交。这就是我在网络跟踪中看到的:
如果您正在做同样的事情,请查看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">