Sinatra app.post 给出 403
Sinatra app.post gives a 403
我正在尝试获得简单的看跌期权并获得 运行ning。 Get 完美运行,但我似乎得到了带有 PUT 的 404。
我尝试过的事情:
- 编写了 app.get "/users/:id" 和 localhost:3000/users/400 的代码以在浏览器上打印用户的 id -> 这行得通,这是一个 get
- 尝试对 post -> app.post“/users/add”(下面的代码)做同样的事情并做了 "localhost:3000/users/add/11" 但我得到了 404。
我的疑惑:
- 如何在浏览器上测试 post? URL 应该如何?我可以将要 post 编辑的信息放在 URL 的什么地方?还是不应该在URL中指定? (这令人困惑)我猜是缺少输入数据导致我出现 404。
我在 Sinatra 框架上 运行 这是我在控制台上看到的:
INFO WEBrick::HTTPServer#start: pid=10137 port=3000
::1 - - [19/Mar/2015:11:36:34 -0700] "GET /users/add HTTP/1.1" 403 - 0.0156
(等等,这不应该是 POST 吗??)
::1 - - [19/Mar/2015:11:36:45 -0700] "GET /users/add/11 HTTP/1.1" 404 688 0.0086
(我的问题是如何指定要放置的数据)
::1 - - [19/Mar/2015:11:43:15 -0700] "GET /users/add/name=11 HTTP/1.1" 404 693 0.0018
我的路线users.rb代码:
module Routes
module Users
def self.registered(app)
app.post '/users/add' do
reqUserId = params[:id]
"params id #{reqUserId}"
end
end
end
任何帮助都会很棒。我也非常愿意阅读任何东西。
看来你对这里的一些事情感到困惑。
首先put和post是不一样的。 PUT vs POST in REST 可能您想使用 post.
你可能想要的是这样的:
get "/users/add" do
erb :useradd
end
post "/users/add" do
params[:userId]
#render layout or redirect to a url
end
您的 useradd
erb 模板将如下所示:
<form action="/users/add" method="post">
<input name="userId" type="text" />
<input type="submit" value="submit" id="submit" />
</form>
因此,如果您打开呈现视图的 url(如 /users/add
),您的浏览器将执行 GET。如果您按下 submit
,带有您输入字段的表单将得到 posted。
要测试您的 Post 路线,您还可以使用类似 curl:
curl --data "param1=value1¶m2=value2" http://localhost:3000/users/add
我正在尝试获得简单的看跌期权并获得 运行ning。 Get 完美运行,但我似乎得到了带有 PUT 的 404。
我尝试过的事情:
- 编写了 app.get "/users/:id" 和 localhost:3000/users/400 的代码以在浏览器上打印用户的 id -> 这行得通,这是一个 get
- 尝试对 post -> app.post“/users/add”(下面的代码)做同样的事情并做了 "localhost:3000/users/add/11" 但我得到了 404。
我的疑惑:
- 如何在浏览器上测试 post? URL 应该如何?我可以将要 post 编辑的信息放在 URL 的什么地方?还是不应该在URL中指定? (这令人困惑)我猜是缺少输入数据导致我出现 404。
我在 Sinatra 框架上 运行 这是我在控制台上看到的:
INFO WEBrick::HTTPServer#start: pid=10137 port=3000 ::1 - - [19/Mar/2015:11:36:34 -0700] "GET /users/add HTTP/1.1" 403 - 0.0156
(等等,这不应该是 POST 吗??)
::1 - - [19/Mar/2015:11:36:45 -0700] "GET /users/add/11 HTTP/1.1" 404 688 0.0086
(我的问题是如何指定要放置的数据)
::1 - - [19/Mar/2015:11:43:15 -0700] "GET /users/add/name=11 HTTP/1.1" 404 693 0.0018
我的路线users.rb代码:
module Routes
module Users
def self.registered(app)
app.post '/users/add' do
reqUserId = params[:id]
"params id #{reqUserId}"
end
end
end
任何帮助都会很棒。我也非常愿意阅读任何东西。
看来你对这里的一些事情感到困惑。
首先put和post是不一样的。 PUT vs POST in REST 可能您想使用 post.
你可能想要的是这样的:
get "/users/add" do
erb :useradd
end
post "/users/add" do
params[:userId]
#render layout or redirect to a url
end
您的 useradd
erb 模板将如下所示:
<form action="/users/add" method="post">
<input name="userId" type="text" />
<input type="submit" value="submit" id="submit" />
</form>
因此,如果您打开呈现视图的 url(如 /users/add
),您的浏览器将执行 GET。如果您按下 submit
,带有您输入字段的表单将得到 posted。
要测试您的 Post 路线,您还可以使用类似 curl:
curl --data "param1=value1¶m2=value2" http://localhost:3000/users/add