在不触发InvalidAuthenticationToken的情况下,将图像从Android客户端发布到Rails服务器
我正在构建一个运行在rails服务器上的Android应用程序。起初,当我试图将简单字符串数据发布到服务器时,我遇到了InvalidAuthenticationToken问题,但意识到可以通过将内容类型设置为“json”绕过身份验证 下一步是尝试让上传个人资料图片正常工作。但是,当我尝试通过MultipartEntity帖子上传照片时,将内容类型设置为“json”会导致以下错误 StandardError(无效的JSON字符串): 但不设置内容类型会返回InvalidAuthenticationToken异常。从外部Java客户机向rails服务器发布映像的正确方法是什么 ActionController::InvalidAuthenticationToken (ActionController::InvalidAuthenticationToken):在不触发InvalidAuthenticationToken的情况下,将图像从Android客户端发布到Rails服务器,android,ruby-on-rails,ruby,post,paperclip,Android,Ruby On Rails,Ruby,Post,Paperclip,我正在构建一个运行在rails服务器上的Android应用程序。起初,当我试图将简单字符串数据发布到服务器时,我遇到了InvalidAuthenticationToken问题,但意识到可以通过将内容类型设置为“json”绕过身份验证 下一步是尝试让上传个人资料图片正常工作。但是,当我尝试通过MultipartEntity帖子上传照片时,将内容类型设置为“json”会导致以下错误 StandardError(无效的JSON字符串): 但不设置内容类型会返回InvalidAuthentication
您可以对来自非web客户端的API非get调用禁用真实性检查。您可以在before过滤器中执行此操作
class ApiController < ApplicationController
skip_before_filter :verify_authenticity_token
def create
#or whatever
end
end
class ApiController
根据杰西的建议,我最终使用了
protect_from_forgery :except => :upload_avatar_pic
禁用真实性检查,但仅针对特定功能,因此浏览器请求的检查仍然有效。Jesse Wolgamott解决了这个问题,但当我提交表单(更新、创建、显示)时,页面显示“您被重定向”消息。在此之前,页面已正确重定向。我正在使用rails 2.3.8。如何解决此问题?谢谢,这很有效。但是,当请求来自实际浏览器时,这是否也会禁用检查?(我的rails服务器同时为android客户端和网站提供服务)
protect_from_forgery :except => :upload_avatar_pic