我正在使用Cowboy和ErlyDTL在Erlang中建立一个简单的安全(SSL)网站。 在页面上,我有一个包含两个输入文本字段和一个提交按钮的表单。
<form role="form" method="POST" action="favorite">
<table>
<tr>
<td>
Color:
</td>
<td>
<input type="text" name="color" required>
</td>
</tr>
<tr>
<td>
Number:
</td>
<td>
<input type="number" name="nr" required>
</td>
</tr>
<tr>
<td>
<button type="submit" class="btn btn-default">Submitt</button>
</td>
</tr>
</table>
</form>
我在处理程序中收到错误,该错误获取POST的数据并对其执行某些操作。处理程序看起来像(只有处理函数):
handle(Req, State) ->
io:format("handle~n"),
{ok, BodyQs, _Req} = cowboy_req:body_qs(Req),
io:format("POST ~p~n", [BodyQs]),
Color = proplists:get_value(<<"color">>, BodyQs),
Nr = proplists:get_value(<<"nr">>, BodyQs),
io:format("AllValues ~p, ~p~n", [Color, Nr]),
- rest of code -
当我尝试获取BodyQs变量时发生错误。我知道这是因为我得到了第一个io:格式文本。
错误:
进程中的错误...在节点上......退出值:{[reason,{badmatch, {error,timeout}}},{mfa,{favorite_handler,handle,2}},{stacktrace, [{favorite_handler,手柄; 2,[{文件,&#34; SRC / favorite_handler.erl&#34;},{线,41}]},{cowboy_handler,handler_handle,4,[{文件, &#34; SRC / cowboy_handler ...
我的代码出了什么问题?
使用ssl时是否可以使用POST获取数据?
编辑:我把命令用于获取iQ:格式的BodyQs并且我在终端中获取了数据但是当我尝试从我的数据中获取数据时它仍然给我错误POST。
io:format("POST data: ~p~n", [cowboy_req:body_qs(Req)]),
提前致谢
答案 0 :(得分:0)
我发现了我的错误。
我给了我所有的Req变量数字,如(Req,Req2,Req3,...),起初我忽略了它们&#39; _&#39;除非我在其中放入一些数据,如会话。
所以不要忽略Req变量;)
这将我的问题解决了下一个问题。