2011-08-15 2 views
1

모바일 애플리케이션을 통해 액세스되는 Rails 애플리케이션이 있고 데이터가 JSON 형식으로 교환됩니다.HTTP POST, head : ok 1 개의 미스테리 바이트를 반환합니다.

POST를 성공적으로 수행하면 HTTP 코드 200 OK가 반환 될 것으로 예상됩니다. 내가 기대하지 않는 것은 1 바이트의 데이터 ASCII 0x20 (즉, 공백)입니다.

게시되는 개체 (장치)가 이미있는 경우 POST에서 반환하는 코드는 다음과 같습니다.

주석 처리 된 라인에서
# Device is already registered, so update attributes of existing record (incl. device token) 

    if @deviceFound.update_attributes(params[:device]) 
     format.html { redirect_to(@deviceFound, :notice => 'Device was successfully updated.') } 
     format.xml { head :ok } 
     # format.json { head :ok } 
     format.json do 
     render :nothing => true, :status => :ok 
     return true 
     end 
    else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @deviceFound.errors, :status => :unprocessable_entity } 
     format.json { render :json => @deviceFound.errors, :status => :unprocessable_entity } 
    end 

, 당신은 내가 format.json {머리 : OK} 사용하고있는 것을 볼 수 있습니다 나는이 바이트가 돌려지고있어 이유를 이해하기 위해 시도하지만,을, 내가 시도한 내가 대체로 생각하는 대안 구현. 두 가지 모두 HTTP 200 + 1 바이트의 결과를 가져옵니다.

btw이 경우 1 바이트를 필터링하면 다른 모든 경우에 내 모바일 앱이 Rails App과 잘 상호 작용합니다.

누군가 응답의 데이터 바이트를 가져 오는 이유를 설명 할 수 있다면 감사하겠습니다.

감사합니다.

+0

Safari의 버그를 해결하는 것입니다. http://stackoverflow.com/questions/3351247/how-to-return-truly-empty-body-in-rails-i-e-content-length-0 – nickgrim

+0

Ahh! 고맙습니다. 댓글로 답글을 추가하려면 답장으로 표시하겠습니다. 다시 한번 감사드립니다. – Snips

답변

2

명성이 질문에 대답하기위한 @nickgrim 것이 아니라, 그냥이를 닫습니다, 설명은

How to return truly empty body in rails? i.e. content-length 0

좋은

내가 미친 :-)

을하지 않을했다 알고 ... 여기에서 확인할 수 있습니다
+0

추천 한 링크의 전체 내용을 게시하는 것이 좋습니다. 따라서 대상 페이지에 더 이상 액세스 할 수없는 경우에도 솔루션의 가용성을 보장 할 수 있습니다. – Tass