我有一些调用URL mysite.com/articles.js的javascript,它向文章控制器的索引操作发送请求。我需要以JSON格式将数据返回到javascript函数,但在此之前,我想通过渲染index.js.erb来更新页面上的一些部分
我通过jquery
调用URLvar url = '/articles.js
$.get(url, function(newItemData) {
someOtherFunction(newItemData)
}
调用带有.js的URL结尾与发送AJAX请求(remote => true)不一样?我有一些其他按钮和链接通过remote =>发送ajax请求true,并且.js.erb模板随该请求自动呈现。有没有办法将URL称为ajax请求?
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
如果我错了,请纠正我,但看起来你正在尝试从控制器渲染两个视图:index.js.erb
文件和JSON响应。这是不可能的,因为Rails只支持一个render
,redirect_to
或head
来电。
这意味着您需要更改JavaScript代码以发送两个请求:一个用于更新视图(呈现index.js.erb
)而另一个用于返回您的JSON对象。
向.js
结束网址提交请求不与提交AJAX请求相同。为此,您需要如上所述设置remote: true
,或者在JavaScript代码($.ajax()
中)构建一个AJAX请求(如果您使用的是jQuery)。
您也可以考虑查看Layouts and Rendering in Rails。
希望有所帮助!