Hi, I''ve done AJAX calls to Rails'' Controllers before yet never required to generate a response back to the view. In this respect, I have tried to keep it moronically simple and just add a node to see that it works, yet the response doesn''t come through / isn''t interpreted as it should. Long story short, code : // Have to use Mootools to integrate a Moo-specific JS Script // @.js : new Request( { url: ''bla'' onSuccess: function(responseText, responseXML) { console.warn(responseText); console.warn(responseXML); } , onFailure: function(xhr) { alert(STD_ERR); } }).send(); // @SomeController : respond_to do |format| format.html { head :ok } format.xml { render :xml => ({:foo => "bar"}.to_xml) } end // Have tried format.json, with all the code involved (:json, .to_json), yet // nothing. The to_xml Method works in irb. The responseText is "" and responseXML is Null on the callback. This is basic stuff, can''t see past my noobness :). So I just want to render some xml back to the view, no models or anything yet. I have to mention that Content-Length is set on the response header. I''m thinking it''s a no-brainer though :) Thank you in advance ! -- Posted via http://www.ruby-forum.com/.
2009/6/14 Abe Ced <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>:> > Hi, > > I''ve done AJAX calls to Rails'' Controllers before yet never required to > generate a response back to the view. In this respect, I have tried to > keep it moronically simple and just add a node to see that it works, yet > the response doesn''t come through / isn''t interpreted as it should. Long > story short, code : > > // Have to use Mootools to integrate a Moo-specific JS Script > > // @.js : > > new Request( > { > url: ''bla'' > onSuccess: function(responseText, responseXML) > { > console.warn(responseText); > console.warn(responseXML); > } > , > onFailure: function(xhr) > { > alert(STD_ERR); > } > > }).send(); > > // @SomeController : > > respond_to do |format| > format.html { head :ok } > format.xml { render :xml => ({:foo => "bar"}.to_xml) } > end > > // Have tried format.json, with all the code involved (:json, .to_json), > yet > // nothing. The to_xml Method works in irb. > > The responseText is "" and responseXML is Null on the callback. This is > basic stuff, can''t see past my noobness :). So I just want to render > some xml back to the view, no models or anything yet. I have to mention > that Content-Length is set on the response header. I''m thinking it''s a > no-brainer though :) >Have you proven to yourself that it is getting to your controller action ok? For example by breaking in with ruby-debug. Colin
Colin Law wrote:> 2009/6/14 Abe Ced <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>: >> >> , >> format.html { head :ok } >> that Content-Length is set on the response header. I''m thinking it''s a >> no-brainer though :) >> > > Have you proven to yourself that it is getting to your controller > action ok? For example by breaking in with ruby-debug. > > ColinYes, it is getting there - I''ll look into it now after some sleep :), perhaps there''s some nasty oversight. Still getting the same issues as before though. -- Posted via http://www.ruby-forum.com/.
No-brainer after all, I was sending the request via HEAD, therefore I had to set a custom response header, such as : // @Controller respond_to do |format| headers["My-head"] = "abc" format.html { head :ok } end // @JS onSuccess: function(responseText, responseXML) { console.log(responseText); console.log(responseXML); alert(this.getHeader(''My-head'')); }, I changed to GET, used : // @Controller respond_to do |format| format.xml { render :xml => ({"abc" => "def"}.to_xml)} end // @JS onSuccess: function(responseText, responseXML) { console.log(responseXML); // Getting a XML Document, all fine. }, Half an hour though, haha - now I can send and respond to requests, woot !? :) Thank you for the support ! -- Posted via http://www.ruby-forum.com/.