rails-apigemを使用してJSONAPIを作成するためのRyanBates#348ビデオを終了しました。例のように動作させています。ただし、彼の例では、同じプロジェクトでAPIを呼び出すページがあります。私の目標は、クライアントアプリをAPIアプリから分離することです。
APIデータのJSONリクエストを行うページと、フォームを送信する際の投稿を含む2つ目のRailsアプリを作成しました。クライアントアプリをlocalhost:3000で実行し、APIをlocalhost:4000で実行しています。
以下はクライアント側のコードです。新しい取引レコードを正常に送信しますが、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>