[英]sinatra sending headers and body
我正在從網絡聯系表發布到sinatra。 哪個完美。 我需要設置自定義標頭,因為這是一個CORS請求,它也很完美。
但是,當我想返回對請求:status和:message的請求的回復json時,我似乎發送了一個sinatra對象,而不是正確的json。
另外,如果我在日志中看到打印內容,則該消息不在正文中,而是在標題中。
代碼段:
headers \
"Access-Control-Allow-Origin" => "*",
"Access-Control-Allow-Methods" => "POST",
"Access-Control-Allow-Headers" => "Content-Type",
"Access-Control-Max-Age" => "86400"
if params[:email].empty?
response[:status] = "error"
response[:message] = "No email"
p response.inspect
body response.to_json
elsif params[:mailbody].empty?
response[:status] = "error"
response[:message] = "No message?"
body response.to_json
elsif
...
日志文件:
"#<Sinatra::Response:0x007fc62bfed2f8 @status=200, @header={\"Content-Type\"=>\"application/json\", \"Access-Control-Allow-Origin\"=>\"*\", \"Access-Control-Allow-Methods\"=>\"POST\", \"Access-Control-Allow-Headers\"=>\"Content-Type\", \"Access-Control-Max-Age\"=>\"86400\", :status=>\"error\", :message=>\"No email\"}, @chunked=false, @writer=#<Proc:0x007fc62bfecf88@/Users/gtheys/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/response.rb:27 (lambda)>, @block=nil, @length=0, @body=[]>"
127.0.0.1 - - [01/Aug/2014 10:48:57] "POST / " 200 39 0.0077
問題解決了
去掉:
response[:status] = "error"
response[:message] = "No email"
加:
{:status => "error", :message => "No email"}.to_json
而且有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.