不使用rails自带的javascript框架,在rails中直接响应浏览器发送来的ajax请求,请问该如何实现,谢谢
浏览器端(VIEW文件中)用rails自带的prototype库来发送AJAX请求
服务器端(controller)里面区分一下request的accept字段
[code="java"]respond_to do |format|
format.html{
#原先的逻辑
}
format.xml{
#响应AJAX请求的逻辑
}
end[/code]
提个思路:
rails的ajax实现也不过是对prototype ajax的封装,如果自己写的ajax,rails同样可以接受请求进行处理,然后通过render text、json、xml等返回数据。
你可以看看HTML里面AJAX提交到服务器上的路径,用自己的ajax也提交到那个路径就好了,不过rails有个验证过程,所以你的请求要加参数
#{request_forgery_protection_token}='+ encodeURIComponent('#{escape_javascript form_authenticity_token}')
用你的js替换就可以了。如果说这个js没有相应的method,你可以写个adapter.js来处理。
[code="ruby"]<%= javascript_include_tag "jquery", "application" %>[/code]
这里有个jquery的plugin,你可以参考下
http://ennerchi.com/projects/jrails