The URL for your blogging backend that creates a new post looks like this:
http://wwwr.cs.unc.edu/emilyblog/posts.json
This seems to be the same URL that you will use to retrieve the blog index as described in the Post Index Example. In fact, the URL is the same, but the difference is the HTTP method you use to access the URL. To create a blog post, you access this URL with the HTTP POST method. While in order to retrieve the index, you access the URL with the HTTP GET method. This idea of making use of different HTTP "verbs" with a web-based resource to distinguish different kinds of access (i.e., GET for retrieving and POST for creating) is an example of a RESTful interface. Here is a reasonable article about this idea.
In addition to using POST as the HTTP method for the Ajax.Request, you also need to provide the blog post title and body as parameters. To do this, you set the parameters property of the Ajax options object. The value of this property should itself be an object that has two properties: title and body. The values of these properties should be the title and body of the new blog post. Note that you do NOT send any information concerning the new blog post's numeric ID and/or creation date. This is because the backend is responsible for setting those values.
If successful, the responseJSON property of the Ajax.Response delivered to the onSuccess handler will contain an object that represents the newly created blog post. This object will be complete with id and created_at properties along with the title and body.
If the title and/or body of the new post are not provided (or if either value is just whitespace), then the Ajax.Request will not succeed. You can detect and handle this by registering a function with the on0 callback of the Ajax.Request object.
The code associated with the form below demonstrates creating a new blog post. Look at the code in posts_create_example.js to see how it works.