Estoy haciendo una aplicación de iPhone basada en PhoneGap que se conectará a un backend de Rails. Estoy usando jQuery para crear una solicitud de Ajax al servidor de Rails. Recibo con éxito una respuesta del servidor, pero estoy teniendo problemas para obtener cookies y administrar sesiones.¿Cómo incluyo las cookies dentro de una respuesta JSON en Rails?
De forma predeterminada, Rails envía un encabezado Set-cookie al responder a una solicitud HTML. Esto no parece suceder cuando Rails envía una respuesta JSON a una solicitud de Ajax.
¿Hay alguna manera de enviar un encabezado Set-cookie cuando se realiza una solicitud Ajax a un servidor Rails?
Aquí es lo que tengo en mi ApplicationController (estoy usando Diseñar para la autenticación):
def sign_in_and_redirect(resource_or_scope, resource=nil)
scope = Devise::Mapping.find_scope!(resource_or_scope)
resource ||= resource_or_scope
sign_in(scope, resource) unless warden.user(scope) == resource
respond_to do |format|
format.html {redirect_to stored_location_for(scope) || after_sign_in_path_for(resource) }
format.json {render :json => { :success => true, :session_id => request.session_options[:id], :current_user => current_user} }
end
Aquí está la función de jQuery que estoy utilizando para hacer la petición Ajax
$('#user_submit').click(function(){
$.ajax({beforeSend: function(xhrObj){ xhrObj.setRequestHeader("Accept","application/json");},
type: 'POST',
url: 'http://localhost:3000/users/sign_in',
data: "{'user':{'remember_me':'0','password':'pass1word','email':'[email protected]'}}",
contentType: "application/json",
dataType: "application/json",
complete: function(data, textStatus){
}
});
});
no he Se obtiene una respuesta clara a través de Google, así que espero que puedas ayudar. He encontrado esto, pero no lo encontré demasiado útil:
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/66751d8e54f2fee6