我想做以下事情:客户端(来自不同的域,现在是我本地计算机上的 JQuery-Script)向服务器发送 Ajax-Post,服务器将结果保存到服务器并将 HTML/文本发送回将它注入到他的 HTML 中的客户端。
这是 Ajax 调用:
var params = '{"comment": "Test", "creator": "Prof Frick", "name": "Rainer", "url": "' + url + '"}';
alert(params);
$.ajax({
type: "post",
data: params,
url: 'http://localhost:3000/pages/postjson/',
success: function(data) {
$('h1').html(data);
}
});
});
这是我的路线:
match '/pages/postjson/' => 'pages#postjson'
这是控制器:
def postjson
parsed_json = ActiveSupport::JSON.decode(request.body.read) #
@page = Page.where(:url => parsed_json["url"])
new_obj = Page.new
new_obj.name = parsed_json["name"]
new_obj.creator = parsed_json["creator"]
new_obj.url = parsed_json["url"]
new_obj.comment = parsed_json["comment"]
new_obj.save
render :json => @page[:name]
end
我认为我的错误是非常基本的,我非常感谢您的帮助。我的猜测是错误要么在
@page = Page.where(:url => parsed_json["url"])
或在
render :json => @page[:name]
因为一切都通过了,json-data 被保存,浏览器甚至警告“成功”,但我想发布的只是消失了。
谢谢你的建议。一般的编码技巧也总是很受欢迎!