所以我有一个场景,我的 jQuery ajax 请求正在访问服务器,但页面不会更新。我被难住了...
这是ajax请求:
$.ajax({
type: 'GET',
url: '/jsrender',
data: "id=" + $.fragment().nav.replace("_link", "")
});
观看 rails 日志,我得到以下信息:
Processing ProductsController#jsrender (for 127.0.0.1 at 2010-03-17 23:07:35) [GET]
Parameters: {"action"=>"jsrender", "id"=>"products", "controller"=>"products"}
...
Rendering products/jsrender.rjs
Completed in 651ms (View: 608, DB: 17) | 200 OK [http://localhost/jsrender?id=products]
因此,在我看来,ajax 请求正在到达服务器。jsrender 方法中的代码正在执行,但 jsrender.rjs 中的代码没有触发。这是方法,jsrender:
def jsrender
@currentview = "shared/#{params[:id]}"
respond_to do |format|
format.js {render :template => 'products/jsrender.rjs'}
end
end
为了论证起见,jsrender.rjs 中的代码是:
page<<"alert('this works!');"
为什么是这样?我在参数中看到没有authenticity_token,但我也尝试过传递authenticity_token,结果相同。
提前致谢。