首先,我正在调用一个 javascript ajax 函数,该函数将调用当我转到 URL 时调用的 ruby 函数:
/cnet
从那里,我想从 ruby 进行另一个 post call,我想在其中传递 json 数据。如何传递 json 格式的数据以在 ruby 中执行此调用?
我的javascript代码如下:
$.ajax({
url: "/cnet",
type: "get",
dataType: "json",
contentType: "application/json",
data: {netname:netname},
success: function(data) {
alert(data);
}
});
我的 ruby 代码如下: 实际上,我以两种不同的方式进行了尝试:
1.
get '/cnet' do
net_name=params[:netname]
@toSend = {
"net_name" => net_name
}.to_json
uri = URI.parse("http://192.168.1.9:8080/v2.0/networks")
https = Net::HTTP.new(uri.host,uri.port)
#https.use_ssl = true
req = Net::HTTP::Post.new(uri.path, initheader = {'Content-Type' =>'application/json'})
req['net_name'] = net_name
req.body = "#{@toSend} "
res = https.request(req)
erb net_name
end
2.
get '/cnet' do
temp="mynet"
url = URI.parse('http://192.168.1.9:8080/v2.0/networks')
params={'net_name'=>temp}
resp = Net::HTTP.post_form(url, params)
resp_text = resp.body
print "======================================================================"
puts resp_text
print "======================================================================"
erb resp_text
end
如何传递 json 数据而不是字符串?
任何帮助将非常感激。