我必须构建一个 Angular js 应用程序作为客户端来使用 api。问题是 api 不支持 jsonp 调用。
所以我创建了一个 Rails 应用程序,它调用 api 并返回内容。我正在使用法拉第宝石
现在我有一个每次调用 api 的方法。但是由于每个方法只创建一个请求,触发请求并返回内容。
如果我可以创建一个代理控制器,它根据接收到的内容创建请求,然后使用法拉第创建一个请求并返回结果,我正在徘徊。像这样的东西:
def proxy_request
if request.method_symbol == :get || request.method_symbol == :delete
line 7: response = faraday_conn.run_request(request.method_symbol, request.fullpath, nil, request.headers)
elsif request.method_symbol == :post || request.method_symbol == :put || request.method_symbol == :patch
response = faraday_conn.run_request(request.method_symbol, request.fullpath, request.body.read, request.headers)
end
render :text => response.body, :status => response.status, :content_type => response.headers["Content-Type"]
结尾
这是行不通的。我做错了什么?它总是失败
NoMethodError (undefined method `strip' for #<StringIO:0x3436848>):
app/controllers/api_proxy_controller.rb:7:in `proxy_request'