我shrine
在我的 Rails 应用程序中使用 gem 来上传文件。我想将此 gem 与Fineuploader前端库集成,以在上传文件时增强用户体验。我能够将它集成到能够通过神社服务器端代码通过fineuploader前端将文件上传到我的s3存储桶的程度。
现在,在成功上传后,我收到一个带有 JSON 响应的 200 状态代码,如下所示:
{"id":"4a4191c6c43f54c0a1eb2cf482fb3543.PNG","storage":"cache","metadata":{"filename":"IMG_0105.PNG","size":114333,"mime_type":"image/png","width":640,"height":1136}}
但是为了认为这个响应成功,fineuploader 期望success
JSON 响应中的属性值为。true
所以我需要修改这个 200 状态 JSON 响应来插入这个成功属性。为此,我询问了shrine
gem 的作者,他建议我在神社初始化文件中使用此代码:
class FineUploaderResponse
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)
if status == 200
data = JSON.parse(body[0])
data["success"] = true
body[0] = data.to_json
end
[status, headers, body]
end
end
Shrine::UploadEndpoint.use FineUploaderResponse
不幸的是,此代码不起作用,并且实际上使用此代码fineuploader 在控制台中引发以下错误:
Error when attempting to parse xhr response text (Unexpected end of JSON input)
请告诉我,我需要如何修改此代码以插入success
具有有效 JSON 响应的属性。