【发布时间】:2011-08-16 16:30:19
【问题描述】:
我正在尝试将图像从 iPhone 上传到使用 Carrierwave 进行处理的工作 Rails 应用程序。我需要考虑 rails 需要的 CSRF 真实性令牌吗?
我的 Titanium app.js 文件中有以下内容,几乎取自他们的 Snappost 示例代码:
xhr.open('POST','http://myapp.com/foos/1/bars');
xhr.send({media:originalImage});
我的rails动作很简单:
def create
@bar = @foo.bars.build(params[:bar])
@bar.image = params[:file]
respond_to do |format|
if @bar.save
format.html { redirect_to(@foo, :notice => 'Bar was successfully created.') }
format.json { render :json => @bar, :status => :created }
fotmat.xml { render :xml => @bar, :status => :created }
else
format.html { render :action => "new" }
format.json { render :json => @bar.errors, :status => :unprocessable_entity }
format.xml { render :xml => @bar.errors, :status => :unprocessable_entity }
end
end
end
在我尝试上传时,我收到了描述超时的“xhr.onerror”警报。我的服务器日志如下:
在 2011-05-01 17:01:33 -0500 为 ###.###.#.### 开始 POST "/foos/1/bars" 由 BarsController#create as MULTIPART_FORM 处理 参数:{"media"=#<:http::uploadedfile:0xabdd968 form-data name='\"媒体\";文件名=\"2' image>>, "foo_id"=>"1"} ^[[1m^[[36mSQL (1.9ms)^[[0m ^[[1mSHOW TABLES^[[0m ^[[1m^[[35mFoo Load (0.1ms)^[[0m SELECT foos.* FROM foos WHERE foos.id = 1 LIMIT 1 ^[[1m^[[36mSQL (2.6ms)^[[0m ^[[1mBEGIN^[[0m ^[[1m^[[35mSQL(5.9ms)^[[0m回滚 在 468 毫秒内完成 406 不可接受【问题讨论】:
-
听起来像 format.js 中降价格式的类似问题 - 我会检查:406 error with XHR request
标签: ruby-on-rails-3 titanium appcelerator xmlhttprequest image-uploading