我正在使用 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:format 文本。
错误:
进程中的错误...在节点上...退出值:{[reason, {badmatch, {error, timeout}}},{mfa,{favorite_handler, handle,2}},{stacktrace, [{favorite_handler,handle ,2,[{file,"src/favorite_handler.erl"},{line,41}]},{cowboy_handler,handler_handle,4,[{file, "src/cowboy_handler...
我的代码有什么问题?
使用 ssl 时是否可以通过 POST 获取数据?
编辑:我将用于获取 BodyQs 的命令放入 io:format 中,并且我在终端中获取了数据,但是当我尝试从 POST 中获取数据时,它一直给我这个错误。
io:format("POST data: ~p~n", [cowboy_req:body_qs(Req)]),
提前致谢