How to make an AJAX call to different domains in Ruby on Rails 3.0

I have an action email in my controller of application running on and I am trying to send the form data of email to []( where my another application receives the request and I am able to save the data in js format. But I want to send back the acknowledgement to and replace the html using rjs template. Here are some code for you reference:

email.html.erb called on

   <div id="div_content">

    <%= form_for(@user, :url => "[](", :remote => true) do |f| %>

    <%= f.label :email %>

    <%= f.text_field :email%>

    <% end %>

email action of application on : -

def email
  @user = User.create(params[:user])

  respond_to do |format|

       format.html { redirect_to(user_page_path(@user.vip_id), :notice => 'Thank you! You are now on our priority list.') }

       format.html { render :text => "user can not be saved at this moment!"}


email.js.rjs called on

page.replace_html :div_content, :partial => "show", :object => @user

I can see in my log that request comes all the way from one domain to
sub domain and even action gets triggered but, I can not get the response back to the main domain. So, is there any way to send a callback to main domain. I just want to reflect changes there at the form which is inside div_content div and want to replace with content of _show.html.erb which I have on my sub domain.

Many Thanks,
Surya :slight_smile:

If you're trying to do all this in JavaScript, you're going to run smack into the Same Origin Policy. Unless you use a proxy on, you can't update the page using data requested from, or even -- subdomain and port must match. More here:


hey Thanks for your kind response. So, what I should do to achieve the same?? Any idea?

hey Thanks for your kind response. So, what I should do to achieve the same?? Any idea?

You can use a proxy endpoint on to reflect what you get from into the correct address space. You can also use a cross-domain privilege escalation to leave things as they are. If you control both servers, google "cross-domain JavaScript" for a thousand pounds of documentation on how to set this up. Personally, I would see if you could re-architect the system so that the request could happen within the same domain. You may be able to set up your server such that and are precisely the same thing.