gpt4 book ai didi

javascript - Sinatra 不显示 POST 数据

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:37 24 4
gpt4 key购买 nike

我正在从客户端向 Sinatra 发出 AJAX 请求,但不知何故数据没有显示。Chrome 请求 header 选项卡表明在客户端一切正常:

Request Payload 
{ test: Data }

然而,在Sinatra这边

  post '/api/check/:name' do
sleep 3
puts params.inspect
end

和控制台:

 127.0.0.1 - - [03/Feb/2014 10:45:53] "POST /api/check/name HTTP/1.1" 200 17 3.0019
{"splat"=>[], "captures"=>["name"], "name"=>"name"}

找不到帖子数据,怎么了?

最佳答案

这是一个常见的错误。 Sinatra 仅解析表单数据 ( source )。

要解决此问题,请使用 rack-contribrequest.body

表单参数看起来像这样

curl -X POST 127.1:4567/ -d "foo=bar"

您可以使用 request.body.read 或使用 rack contrib 代替参数。

机架贡献

  1. 使用 gem install rack-contrib 安装它
  2. 需要它

    require 'rack'

    require 'rack/contrib'

  3. 加载它使用 Rack::PostBodyContentTypeParser

有了它,您可以像往常一样为 json post 数据使用 params。像这样:

curl -X POST -H "Content-Type: application/json" -d '{"payload":"xyz"}' 127.1:4567/

来源:

关于javascript - Sinatra 不显示 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com