모바일 애플리케이션을 통해 액세스되는 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과 잘 상호 작용합니다.
누군가 응답의 데이터 바이트를 가져 오는 이유를 설명 할 수 있다면 감사하겠습니다.
감사합니다.
Safari의 버그를 해결하는 것입니다. http://stackoverflow.com/questions/3351247/how-to-return-truly-empty-body-in-rails-i-e-content-length-0 – nickgrim
Ahh! 고맙습니다. 댓글로 답글을 추가하려면 답장으로 표시하겠습니다. 다시 한번 감사드립니다. – Snips