我正在尝试中继GET
请求,以便当用户向服务器发出POST
请求时,服务器会对其他某个URL执行另一个GET
请求并返回结果。
问题在于,当我使用puts
打印结果时,我看到了我期待的正确结果,但最后一行(我相信函数的最后一行自动返回的ruby)没有响应POST
请求(它返回空响应)。来自JavaScript我相信它正在进行异步GET
调用,并且POST
响应不会等到GET
客户端完成。
任何帮助都将不胜感激。
require 'rubygems'
require 'sinatra'
require "http"
my_app_root = File.expand_path( File.dirname(__FILE__) + '/..' )
set :port, 80
set :bind, '0.0.0.0'
set :public_dir, my_app_root + '/public'
post "/weather" do
puts HTTP.get('https://www.metaweather.com/api/location/search/?query=milwaukee') # prints correct result
HTTP.get('https://www.metaweather.com/api/location/search/?query=milwaukee') # response of POST method is empty string!
end
答案 0 :(得分:2)
对
的更改HTTP.get
HTTP::Response
方法返回String
个对象而不是 res = [res] if Integer === res or String === res
if Array === res and Integer === res.first
res = res.dup
status(res.shift)
body(res.pop)
headers(*res)
elsif res.respond_to? :each
body res
end
nil # avoid double setting the same response tuple twice
个对象。
从源代码中只能返回特定类型的对象。
1. npm install --save font-awesome
2. Import it to my jsx file
import '../../../../../../node_modules/font-awesome/css/font-awesome.min.css';
3. Adding url-loader to my webpack.config.js
{
test: /\.(woff|woff2|eot|ttf)(\?.*$|$)/,
loader: 'url-loader?limit=100000'
}