我完成了使用 rails-api gem 创建 JSON API 的 Ryan Bates #348 视频。我让它像示例中一样工作。但是,在他的示例中,他有在同一个项目中调用 API 的页面。我的目标是将客户端应用程序与 API 应用程序分开。
我创建了第二个 Rails 应用程序,它只包含对 API 数据执行 JSON 请求的页面和提交表单时的帖子。我有在 localhost:3000 上运行的客户端应用程序和在 localhost:4000 上运行的 API。
下面是客户端代码。它成功提交了新的交易记录,但 GET 没有加载交易列表。在查看日志时,它似乎正在以 HTML 格式请求它。当页面属于同一个 API 项目时,相同的代码在日志中以 JSON 形式进行调用。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
$(function() {
function addDeal(deal) {
$('#deals').append('<li>' + deal.name + '</ul>');
}
$('#new_deal').submit(function(e) {
$.post('http://localhost:4000/deals', $(this).serialize(), addDeal);
this.reset();
e.preventDefault();
});
$.getJSON('http://localhost:4000/deals', function(deals) {
$.each(deals, function() { addDeal(this); });
});
});
</script>
<div id="container">
<h1>My Deals</h1>
<form id="new_deal">
<input type="text" name="deal[name]" id="deal_name">
<input type="submit" value="Add">
</form>
<ul id="deals"></ul>
</div>