簡體   English   中英

sinatra發送標頭和正文

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM