无法从 POST 获取数据
Can't get the data from POST
我正在使用 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 文本。
错误:
Error in process ... on node ... with exit value: {[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)]),
提前致谢
我发现了我的错误。
我给了我所有的 Req 变量编号,例如(Req、Req2、Req3,...),起初我用“_”忽略了它们,除非我在其中放入一些数据,如会话。
所以不要忽略 Req 变量 ;)
这解决了我的下一个问题。
我正在使用 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 文本。
错误:
Error in process ... on node ... with exit value: {[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)]),
提前致谢
我发现了我的错误。
我给了我所有的 Req 变量编号,例如(Req、Req2、Req3,...),起初我用“_”忽略了它们,除非我在其中放入一些数据,如会话。
所以不要忽略 Req 变量 ;)
这解决了我的下一个问题。