Pregunta

Estoy usando el siguiente en la página web, pero no puede obtener una respuesta desde el servidor, mientras que el procesamiento de

<script type="text/javascript">
<!--
   function updateProgress() {
      //alert('Hello');
      new Ajax.Request('/fmfiles/progress_monitor', {
         parameters: 'authenticity_token=' + encodeURIComponent(AUTH_TOKEN),
         onSuccess: function(response) {
            alert(response.responseText);
            fillProgress('progressBar',response.responseText);
         }
      });
   }
//-->
</script>

<% form_for( :fmfile, :url => '/fmfiles', :html => { :method => :post, :name => 'Form_Import', :enctype => 'multipart/form-data' } ) do |f| %>
...
<%= f.file_field :document, :accept => 'text/xml', :name => 'fmfile_document' %>
<%= submit_tag 'Import', :onClick => "setInterval('updateProgress()', 2000);" %>

El 'crear' método en fmfiles_controller.rb entonces felizmente se procesa el archivo y se pone a la derecha de los resultados (como por el botón de enviar en el formulario).Si se me quite el comentario de la '//alert('Hola')' línea de obtener un cuadro de diálogo diciendo: Hola cada 2 segundos ...como era de esperar.

Sin embargo, el servidor nunca los registros de cualquier llamada a 'progress_monitor' método 'archivos' ni siquiera un intento fallido.

Si hago clic en el enlace

<a href="#" onclick="updateProgress();">Run</a>

se hace una llamada al servidor, recibe una respuesta y muestra el cuadro de diálogo, por lo que asumo que las rutas y de la sintaxis y de nomenclatura está todo OK.

La verdad, no sé por qué esto no está funcionando.Es porque los 2 métodos en la misma controladora son llamados a través de la Url?

Estoy usando Rails 2.1.0 en un entorno de desarrollo en OS X 10.5.5 y el uso de Safari 3.1.2

(N. B.Esta es la continuación de otro pregunta, pero creo que es suficientemente diferente como para merecer su propia pregunta.)

¿Fue útil?

Solución

Si usted no está viendo los mensajes en el archivo de registro para la llamada a 'progress_monitor', entonces es posible que la petición es que nunca se envió.

Intente esto:

  1. Trate de usar la URL completa de la página en lugar de la dirección URL relativa para el Ajax.Solicitud.He tenido problemas con las Url relativas en algunos navegadores con el Ajax.Solicitud.

  2. Habilitar Firebug o el IE Developer Toolbar.Usted debe ser capaz de ver si la llamada a progress_monitor funciona o no.Si hay un error de script java, a continuación, verá el error claramente el uso de estas herramientas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top